Passage de paramètre du PHP au Javascript

Passage de paramètre du PHP au Javascript - PHP - Programmation

Marsh Posté le 10-03-2019 à 19:26:41    

Bonjour,
 
Le passage de la valeur d'une variable php à une fonction Javascript peut se faire de la façon suivante :

<?php
$c=1;
//$c="Paris";
echo '<a href="javascript: testpara('.$c.')">PASSAGE DE PARAMETRE </a>';
?>

La valeur 1 contenue dans la variable $c est parfaitement exploitée par la fonction javascript testpara. Par exemple avec le code ci-dessous l'affichage par alert donne 1.
 
function testpara(a)
{
alert (a);
}

 
Technique qui rend bien des services.
Par contre elle est mise en défaut si $c est une chaîne de caractères. ( $c="Paris" ) Dans ce cas la fonction testpara ne reconnait pas la valeur de la chaîne.
Pourquoi ?
Y-a-t il une possibilité de passer une chaîne en argument ou est-ce impossible structurellement ?
Merci à quiconque aura une explication, voire une solution.
 @+

Reply

Marsh Posté le 10-03-2019 à 19:26:41   

Reply

Marsh Posté le 10-03-2019 à 19:57:15    

Au pif: echo '<a href="javascript: testpara(" '.$c.' " )">PASSAGE DE PARAMETRE </a>';


Message édité par rat de combat le 10-03-2019 à 19:57:38
Reply

Marsh Posté le 11-03-2019 à 09:26:39    

Faut aussi penser à échapper les caractères guillemets.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-03-2019 à 09:45:06    

J'ai essayé ces idées mais le résultat reste le même : la fonction javascript n'affiche rien...
D'autres idées ?

 <script>
 function testpara(a)
 {
 alert (a);
 }
 </script>
 </head>
<body>
<?php
$c="Paris";
echo '<a href="javascript: testpara(\" '.$c.' \" )">PASSAGE DE PARAMETRE </a>';  
?>
...

Reply

Marsh Posté le 14-03-2019 à 09:51:35    

Code :
  1. echo '<a href="javascript: testpara(\' '.$c.' \' )">PASSAGE DE PARAMETRE</a>';


 
Écris tes lignes en dur et tu comprendras l'erreur.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 14-03-2019 à 09:56:18    


echo '<a href="javascript: testpara(\' '.$c.' \' )">PASSAGE DE PARAMETRE</a>';

C'était la solution !
Merci MaybeEijOrNot

Reply

Marsh Posté le 14-03-2019 à 09:56:48    

Tiens, je te donne trois possibilités  

Code :
  1. <script>
  2. function testpara(a)
  3. {
  4. alert (a);
  5. }
  6. </script>
  7. </head>
  8. <body>
  9. <?php
  10. $c="Paris";
  11. ?>
  12. <a href="javascript:testpara('<?php echo addslashes($c)?>')">PASSAGE DE PARAMETRE (façon 1)</a> 
  13. <br><br>
  14. <?php
  15. echo '<a href="javascript:testpara(\''.addslashes($c).'\' )">PASSAGE DE PARAMETRE (façon 2)</a>'; 
  16. ?>
  17. <br><br>
  18. <?php
  19. echo "<script>str_c='".addslashes($c)."'</script>";
  20. echo '<a href="javascript: testpara(str_c)">PASSAGE DE PARAMETRE (façon 3) </a>'; 
  21. ?>


Message édité par antac le 14-03-2019 à 09:58:38
Reply

Marsh Posté le 14-03-2019 à 10:00:07    

Merci Antac.
Je vais essayer tout cela à tête reposée.
@+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed