Pb avec les string (mix php-javascript)

Résolu
cs_27 Messages postés 66 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 16 juillet 2007 - 17 janv. 2007 à 15:57
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008 - 17 janv. 2007 à 16:17
Salut,

je viens vous demandez de l'aide car j'ai un probleme que je ne sais resoudre.

Je fais actuellement une fonction javascript qui par selection dans un menu va generer les champs d'un formulaire (deja realiser auparavant sans probleme particulier).

Mon menu est generer dynamiquement avec des donnees venant de MySql, tout comme les donnees du formulaire.

Dans ma fonction javascript je mets du php :

function generateFields(){
   ...
   <?php
   ...
   while($temp = mysql_fetch_array($res)){
      $id_page=$temp['id_page'];
      echo 'alert('.$id_page.'); ';
      // fonctionne correctement avec un type integer
      
      $category=$temp['category'];
      echo 'alert('.$category.'); ';
      // le probleme est la : pas d'alert dans le naviguateur
      // il ne veut pas prendre en compte les caractere
      //aucun affichage de la variable qui contient par exemple un mot comme apartement
   }
   ...
   ?>
}

Si dans ma base je remplace le mot apartement par un numero comme 27, mon alert s'affiche avec le numero 27 et si je remets une chaine de caractere alors plus d'affichage.

J'espere m'etre bien expliquer et que quelqu'un pourra m'aider a corriger mon probleme.

++

2 réponses

ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
17 janv. 2007 à 16:17
Salut,


C'est tout à fait normal, il suffit juste de mettre le texte à afficher entre quote  ' :
 echo 'alert('.$category.'); ';
devient donc
 echo "alert('".$category."');";
car dans le cas de alert(25) il n'y a pas d'ambiguité il ne peut qu'afficher l'entier 25

mais dans le cas de alert(yajev) il ne sait pas s'il doit afficher le contenu de la variable

javascript yajev ou de la chaine de caractere "yajev".

Il suffit de tester alert(25), alert(yajev) et alert('yajev') dans un navigateur pour voir la différence...


Henri
3
cs_27 Messages postés 66 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 16 juillet 2007
17 janv. 2007 à 16:15
Information supplementaire :

J'ai une autre application web qui fait appel a une fonction du meme type mais celle-ci en revanche genere mais champs avec des strings , ca fonctionne parfaitement sur celle la.
0
Rejoignez-nous