passage de paramètre en javascript

Eléphanteau du PHP | 21 Messages

02 juil. 2010, 10:57

Bonjour,
j'ai le code PHP suivant:
echo '<a title="',$titre,'" href="javascript:lien(',($titre),');">',$j,'</a>';
Le problème est qu'en cliquant sur ce lien, la fonction lien ne s'exécute pas. Je pense qu'il y a un problème d'apostrophe que j'ai pas pu trouver. Parcequ'n écrivant ceci:
echo '<a title="',$titre,'" href="javascript:lien(99);">',$j,'</a>';
ça s'exécute avec succès.

Alors c'est où le problème?? :evil:

Eléphant du PHP | 50 Messages

02 juil. 2010, 11:07

Bonjour,

j'ai l'impression que tu as des parenthèses en trop , essaye
echo '<a title="'.$titre.'" href="javascript&#058;lien('.$titre.');">'.$j.'</a>';

Eléphanteau du PHP | 21 Messages

02 juil. 2010, 11:16

Non, ça n'a pas marché!!! Même problème :(

Eléphant du PHP | 50 Messages

02 juil. 2010, 11:21

Quel est le paramètre attendu dans ta fonction ?
il n'y pas une confusion entre les $j et $titre ?

Eléphanteau du PHP | 21 Messages

02 juil. 2010, 11:40

Non non pas du tout,
j'ai même affecté à ces variables des constantes:
$titre="coucou";
$j=1;

Mammouth du PHP | 672 Messages

02 juil. 2010, 12:36

Tu peux donner le source de la page html générée ?
Et la fonction javascript (au moins l'en-tête, qu'on sache ce qui est attendu) ?

Eléphanteau du PHP | 21 Messages

02 juil. 2010, 13:11

Oh c'est trop long et trop compliqué pour pouvoir vous expliquer, mais je peux vous donner une idée:

Dans la page page1.php on a ceci:
function lien(titre) 
     {	
        window.opener.document.getElementById('montitre').value=titre;//montitre est une zone de texte dans la quelle je veux écrire ce qui se trouve 
                                                                                                         //dans la variable titre
        window.close();
     }
/*
 code n'mporte quoi
*/

echo '<a title="'.$titre.'" href="javascript:lien('.$titre.');" >'.$j.'</a>';
En voulant tester le truc avec des constantes, j'ai fait ça:
function lien(titre) 
     {	
        window.opener.document.getElementById('montitre').value=titre;//montitre est une zone de texte dans la quelle je veux écrire ce qui se trouve 
                                                                                                         //dans la variable titre
        window.close();
     }
/*
 code n'mporte quoi
*/
$titre="coucou";
$j=1;
echo '<a title="'.$titre.'" href="javascript:lien('.$titre.');" >'.$j.'</a>';
ça n'a pas marché aussi!!

Alors j'essaie ça:
function lien(titre) 
     {	
        window.opener.document.getElementById('montitre').value=titre;//montitre est une zone de texte dans la quelle je veux écrire ce qui se trouve 
                                                                                                         //dans la variable titre
        window.close();
     }
/*
 code n'mporte quoi
*/
echo '<a title="'.$titre.'" href="javascript:lien(99);" >'.$j.'</a>';
Alors là, j'ai la valeur 99 dans mon champ de texte.

Voilà!!!

Mammouth du PHP | 672 Messages

02 juil. 2010, 13:15

Tu peux donner le source de la page html générée ?

ViPHP
ViPHP | 3607 Messages

02 juil. 2010, 14:12

Et au passage:
<a href="javascript:..."></a> 
est complètement obsolète... :/
remplaces par:
<a href="urldesecours.html" onclick="tafonction();return false;">kzejfhzejfh</a>

ViPHP
ViPHP | 4039 Messages

02 juil. 2010, 14:40

Et au passage:
<a href="javascript:..."></a> 
est complètement obsolète... :/
remplaces par:
<a href="urldesecours.html" onclick="tafonction();return false;">kzejfhzejfh</a>
Et même ça c'est obsolète, il faut faire du javascript discret.

Et même ça c'est obsolète, il faut faire de la délégation d'évènements;

Et même ça c'est bientôt obsolète, puisque HTML5 va tout exploser partout plein mille de morceaux.

Ah, c'est beau, le dev web :mrgreen:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 21 Messages

03 juil. 2010, 10:56

Voilà comment c'est résolu:
<a href="mapage.php" onclick="lien('<?php echo $titre ?>');return false;"><?php echo $j ?></a> ';