Charger un lien html avec un popup JS dans un tableau assoc. PHP

Eléphant du PHP | 72 Messages

06 nov. 2007, 18:52

Bonjour a tous ,
Apres une longue absence je dois refaire un petit travail avec PHP et j'ai bien sur des difficultes.

J'ai ecrit une fonction PHP qui recoit en argument un tableau Assoc et l'imprime dans le browser.

Ca c'est ma fonction:
(Sans les balises HTML de table et form qui viendront plus tard)

Code : Tout sélectionner

<?php function imprTableau ($tablAssoc) { global $tablAsso; foreach ($tablAsso as $clef => $valeur) { if ($clef!='ligne') { echo "<TR><TD>$clef</TD><TD>$valeur</TD></TR>\n";} else echo "<TR><TD colspan=2><hr></TD></TR>"; }

Ca c'est mon tableau assoc:
(Un test en fait)

Code : Tout sélectionner

<?php $tablAsso["Nom"]='<input type="text" name="Nom" size="10">'; $tablAsso["Prenom"]='<input type="text" name="Prenom" size="15">'; $tablAsso["Adresse mail"]='<input type="text" name="AdrMail" size="20">'; $tablAsso["Nom d'Utilisateur"]='<input type="text" name="NomUtil" size="25">'; $tablAsso["Mot de passe"]='<input type="text" name="MotPass" size="30">'; $tablAsso["Confirmation"]='<input type="text" name="Confirm" size="35">'; $tablAsso[""]='<input type="text" name="Confirm" size="40">'; $tablAsso["ligne"]='<hr>'; ?>
Je voudrai faire imprimer une ligne dans ma table avec un link qui ouvre un popup, mais j'ai une erreur:

Parse error: parse error, unexpected T_STRING in C:\wamp\www\devoir_1\authentification.php on line 42, ou une autre erreur provoquee probablement par le return de JS.

Ceci est la ligne du tableau qui me donne des soucis
$tablAsso["Vous avez oublié"]='<a HREF="http://localhost/devoir_1/oubli.php" target="_blank" onClick="return popup(this, 'oubli')"> votre mot de passe ...</a>';
Est-ce que quelqu'un peut m'aider?


D'avance merci

marc_3

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 nov. 2007, 19:04

salut,

Regarde bien ce que donne la coloration syntaxique (avec les balises
) au niveau de "oubli".

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 445 Messages

06 nov. 2007, 19:04

Edit : La reponse au dessus est bien plus constructive.

Eléphant du PHP | 72 Messages

06 nov. 2007, 19:20

Je vois bien (parsque vous me le montrez) la différence mais je ne comprend pas ce que je devrai faire.
Tous les tests que j'ai fait jusque la on marche.
:oops:

Eléphant du PHP | 72 Messages

06 nov. 2007, 19:32

Bon je viens de tester avec

Code : Tout sélectionner

$tablAsso["Vous avez oublié"]='<a HREF="http://localhost/devoir_1/oubli.php" target="_blank" onClick="return popup(this, "oubli")"> votre mot de passe ...</a>';
Ca marche tres bien, merci pour les reponses.

Eléphant du PHP | 72 Messages

06 nov. 2007, 19:41

Pour en finir est-ce que mon oubli est evalue avec des guillemets simples comme un mot clef alors que avec des guillemets double comme une simple chaine de char?

Raison pour laquelle cela ne marchait pas??

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 nov. 2007, 19:42

Aie, étonnant que ça marche...

Avant tu coupais la chaine de caratères pour PHP que tu as débuté par '
Maintenant tu coupes la chaine pour l'événement onClick avec "

Il faut échapper avec \ en pensant à la fois au PHP et au code source que cela va générer :
$tablAsso["Vous avez oublié"]=' ... onClick="return popup(this, \'oubli\')" ... ';

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 445 Messages

06 nov. 2007, 19:57

$tablAsso["Vous avez oublié"]=' ... onClick="return popup(this, \'oubli\')" ... ';
Bon, finalement on arrive a ce que j'avais dit puis editer pour plus de pedagogie. :?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 nov. 2007, 20:18

Bon, finalement on arrive a ce que j'avais dit puis editer pour plus de pedagogie. :?
Tu as édité avant même que j'ai pu voir ta réponse :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 445 Messages

06 nov. 2007, 20:23

Tu as édité avant même que j'ai pu voir ta réponse :)
Je lui disait d'echapper ses simple quote.
'<a HREF="http://localhost/devoir_1/oubli.php" target="_blank" onClick="return popup(this, \'oubli\')"> votre mot de passe ...</a>'; 
Mais je trouvais ta réponse bien plus constructive. :wink:

Eléphant du PHP | 72 Messages

07 nov. 2007, 14:01

Merci encore pour les reponses

marc_3