fermer page qd clic sur lien

Eléphant du PHP | 155 Messages

23 mai 2005, 15:46

bonjour,
j'ai une page qui contient un tableau. dans ce tableau, il y a du text et des liens-text.
j'aimerai réaliser plusieurs actions quand il y a eu un clic sur un lien (ou sur une case de mon tableau) mais je sais pas comment faire.
J'ai essayer plusieurs choses a l'aveuglette mais sans resultat.
parmis les actions que j'aimerai realiser, je voudrai fermer la fenetre, j'ai essayer d'utiliser:
onClick='self.close()
je l'ai placé dans ma balise <ahref..> mais ca marche pas.

Mammouth du PHP | 19672 Messages

23 mai 2005, 16:00

Code : Tout sélectionner

onclick="window.close()"
Ceci devrait fonctionner, mais pourquoi forcer la fermeture de la fenêtre: habituellement, on met ce genre de fonctionalité dans un pop-up.

Fais voir un peu plus de code si ça ne fonctionne toujours pas.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 mai 2005, 16:01

ça, c'est du javascript, ce serait mieux de poster dans le forum "Javascript"

Code : Tout sélectionner

<a href="Javascript:window.close();">fermer</a>"
ou

Code : Tout sélectionner

<a href="#" onClick="window.close();">fermer</a>"
attention : tu ne peux fermer qu'une fenêtre que tu as toi même ouverte[/code]

Eléphant du PHP | 155 Messages

23 mai 2005, 16:07

ben en vrai c pour un pop up

dans mon form, a coté de la case destinée a l'adresse mail, je met un bouton qui permet de consulter l'annuaire.

l'annuaire s'ouvre dans un pop up.

Et j'aimerai, que qd on clic sur un lien (une adresse mail) du tableau qui contient l'annuaire (dans la pop up), la pop up se ferme et l'adresse sur laquelle on a cliquer s'integre dans mon form.


c koi ce "#" dans le code. il sert a koi? c pour remplacer mon lien?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 16:10

J'ai fait cette fonction il y a une semaine et elle fait exactement ce que tu cherche !!!!

Lit bien le commentaire pour comprendre le fonctionnement et adapte là à ton code

Code : Tout sélectionner

function Choix(idClient, nomClient){ /*Description : cette fonction récupère 2 paramètres, les places dans les champs correspondants de la fenêtre qui a appellé le popup, ferme le popup et redonne la main à la fenetre mère PRE : idClient est l'identifiant d'un client stocké dans la base de données, nomClient est le nom du client dont l'id est idClient POST : les champs numeroParrain_client et nomParrain_client sont remplie par les valeurs saisies, le popup est fermé et la fenêtre mère reprend le contrôle */ window.opener.document.forms["EnreClient"].elements["numeroParrain_client"].value = idClient; window.opener.document.forms["EnreClient"].elements["nomParrain_client"].value = nomClient; window.close(); window.opener.focus(); }
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

23 mai 2005, 16:11

le href="#", c'est pour signifier qu'on ne quitte pas la page et on complète avec l'ouverture du pop-up dans l'évènement onclick
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 155 Messages

23 mai 2005, 16:39

merci bcp pour ta fonction, mais g pas tt compris.

c koi enreclient?

cette fonction je l''appelle dans chaque case de mon tableau qui contient un lien?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 16:48

window.opener.document.forms["EnreClient"].elements["nomParrain_client"].value = nomClient;

chez moi, cette fonction signifie :

dans la fentre appelante de mon popup(window.opener.document), dans le formulaire "EnreClient" (forms["EnreClient"]), je met la valeur "nomClient" dans le input "nomParrain_clien" (elements["nomParrain_client"].value = nomClient)

Il faut que tu remplace EnreClient par le nom de ton formulaire et nomParrain_client par le nom du champ qui va récupérer la valeur choisie dans ton popup !!!

Et dans ton popup, sur chaque ligne tu créer un lien du genre

Code : Tout sélectionner

<a href=# onClick="Javascript: Choix(<?=$val ?>)">$val</a>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 155 Messages

25 mai 2005, 14:26

je n'arrive pas a l'utiliser.
qd je clique sur un lien, la page mère s'affiche dans le popup et le champs n'est pas rempli ni sur la page mère ni dans la popup.

ça, c'est mon bouton dans ma page mère:
<INPUT TYPE='button' name= 'consulter' VALUE='consulter annuaire' OnClick='window.open("annuaire.php","pop1","height=600, width=400, top=100, left=100,toolbar=no, menubar=yes, location=no, resizable=yes, scrollbars=no, status=no");'>
ça, c'est mon code dans ma popup:
<html> <head> <title>annuaire.php</title> </head> <body> 
<center><h1>Annuaire</h1></center> 
<center>        
<?php 
include ("connexion.php");
connection(); 
$req_annuaire=mysql_query("select * from phpgw_accounts"); 
 echo "<table border='1'>";
echo "<tr><td>Utilisateur</td><td>Nom</td><td>Prénom</td><td>e-mail</td>";
while ($a_result = mysql_fetch_array($req_annuaire, MYSQL_ASSOC)) { 
  echo "<tr>"; 
  echo "<td>".$a_result["account_lid"]."</td>"; 
  echo "<td>".$a_result["account_lastname"]."</td>"; 
  echo "<td>".$a_result["account_firstname"]."</td>"; 
  echo "<td><a href=# onClick="Javascript: Choix(=$a_result["account_email"]")>"$a_result["account_email"]"</a></td>";
echo "</tr>"; 
} echo "</table>";

function Choix()
{
  window.opener.document.forms["nom"].elements["destinataire"].value = $a_result["account_email"];        
  window.close();
  window.opener.focus();
}
?> 
</center>
</body> 
</html>  
je vient de bidouiller et now j'ai une erreur dans ma popup:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /var/www/html/egroupware/workf/appli/annuaire.php on line 15[/php]
Modifié en dernier par renatane le 25 mai 2005, 14:50, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

25 mai 2005, 14:49

Et laisse moi deviner, la ligne 17, c'est cella là ?
echo "<td><a href='#' onClick="Javascript: Choix(=$a_result["account_email"].")>".$a_result["account_email"]."</a></td>";
c'est normal, il y a une erreur de syntaxe !!!!

remplace la par :
  echo "<td><a href='#' onClick='Javascript: Choix(".$a_result["account_email"].")'>".$a_resul]t["account_email"."</a></td>";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 155 Messages

25 mai 2005, 14:53

dsl j'ai edité en mê tps que tu postais.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

25 mai 2005, 15:04

c'est pas grave mais ta ligne 15 est completement fausse :

- #058; ne doit pas être marqué comme tel
- quand tu interprete un tableau, sort le de ta chaine ".$atb[]."
- si tu encadre tes chaines par ", il ne faut pas encadrer le onClick par ", soit /", soit '
- il faut fermer le guillemet ouvrant du onClick

remplace là par la ligne que je t'ai donné
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 155 Messages

25 mai 2005, 15:06

rien a faire, je comprend pas!

avec ça,:
<html> <head> <title>annuaire.php</title> </head> <body> 
<center><h1>Annuaire</h1></center> 
<center>        
<?php 
include ("connexion.php");
connection(); 
$req_annuaire=mysql_query("select * from phpgw_accounts"); 
echo "<table border='1'>";
echo "<tr><td>Utilisateur</td><td>Nom</td><td>Prénom</td><td>e-mail</td>";
while ($a_result = mysql_fetch_array($req_annuaire, MYSQL_ASSOC)) { 
echo "<tr>"; 
echo "<td>".$a_result["account_lid"]."</td>"; 
echo "<td>".$a_result["account_lastname"]."</td>"; 
echo "<td>".$a_result["account_firstname"]."</td>"; 
echo "<td><a href='#' onClick='Javascript:Choix(".$a_result["account_email"].")'>".$a_result["account_email"]."</a></td>";
echo "</tr>"; 
}
echo "</table>";

function Choix()
{  
window.opener.document.forms["nom"].elements["destinataire"].value = $a_result["account_email"];        
window.close();
window.opener.focus();
}
?> 
</center>
</body> 
</html>
j'ai cette erreur!

Parse error: parse error, unexpected '[' in workf/appli/annuaire.php on line 22

Eléphant du PHP | 155 Messages

25 mai 2005, 15:08

le &#58 (je sais pas ce que ca foue là!) c'est en vrai:
Javascript:


oulà!

Javascript:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

25 mai 2005, 15:10

On s'est mal compris, la fonction Choix(), comme c'est marqué dans la ligen 15, c'est une fonction javascript !!!

Je te donne le script corrigé :
<html>
  <head>
    <title>annuaire.php</title>  
  </head>
  <body>
    <center><h1>Annuaire</h1></center>
    <center> 
    <script type="text/javascript">
       function Choix(valeur)
      {  
        window.opener.document.forms["nom"].elements["destinataire"].value =  valeur      
        window.close();
        window.opener.focus();
}
    </script>       
<?php
include ("connexion.php");
connection();
$req_annuaire=mysql_query("select * from phpgw_accounts");
echo "<table border='1'>";
echo "<tr><td>Utilisateur</td><td>Nom</td><td>Prénom</td><td>e-mail</td>";
while ($a_result = mysql_fetch_array($req_annuaire, MYSQL_ASSOC)) {
echo "<tr>";
echo "<td>".$a_result["account_lid"]."</td>";
echo "<td>".$a_result["account_lastname"]."</td>";
echo "<td>".$a_result["account_firstname"]."</td>";
echo "<td><a href='#' onClick='Javascript: Choix(".$a_result["account_email"].")'>".$a_result["account_email"]."</a></td>";
echo "</tr>";
}
echo "</table>";
?>
    </center>
  </body>
</html>
Modifié en dernier par zeus le 25 mai 2005, 15:16, modifié 1 fois.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer