[JS/Ajax/Prototype] Problème de transmission de variables et paramètre

Problème de transmission de variables et paramètre [JS/Ajax/Prototype] - HTML/CSS - Programmation

Marsh Posté le 03-06-2008 à 11:58:08    

Bonjour à tous !
 
Voilà j'ai un petit problème quand à l'utilisation de la bibliothèque Prototype pour Ajax !
 
En effet, j'aimerai exécuter une requête en arrière plan, et afficher "ok" quand elle est finie. Cette requete doit s'executer en cliquant sur un lien vide.
 
Le souci c'est que j'aimerai récupérer une variable php située dans la même page et l'utiliser en tant que paramètre pour la page phph utilisée pour l'appel javascript. Je met le code pour mieux expliquer :
 
 
J'ai une page php dans laquelle j'ai ce script :  

Code :
  1. <script type="text/javascript">
  2. function gestionCopy()
  3. {
  4.      
  5.       var nomSite='".$nomSite."';
  6.       alert(nomSite);
  7.   new Ajax.Request('doc_copy.php?nomSite=' + nomSite,
  8.   {
  9.    method:'GET',
  10.    onSuccess: gestionReponse
  11.   }
  12.   );
  13. }
  14. function gestionReponse(xhr)
  15. {
  16.     if (xhr.status == 200)
  17.     {
  18.         $('resultat').innerHTML = 'OK';
  19.     }
  20.     else
  21.     {
  22.         $('resultat').innerHTML = xhr.status
  23.                     + ' : ' + xhr.statusText;
  24.     }
  25. }
  26. </script>


 
Au dessus j'ai du php et j'ai une variable $nomSite !  
Cette variable, j'ai besoin de la passer en paramètre de la classe "doc_copy.php" pour avoir une nouvelle instance et donc exécuter le code correspondant.
En gros en ajax, j'aimerai executer le code de doc_copy.php avc le paramètre $nomSite mais je sais pas comment passer ça en paramètre ça ne marche pas !!
Le "arlet" m'affiche pour le moment ".$nomSite." (je pense que c'est normal mais je n'ai pas trouvé la syntaxe pour récupérer la valeur de la variable php dans la variable javascript).
 
Merci de votre aide...

Reply

Marsh Posté le 03-06-2008 à 11:58:08   

Reply

Marsh Posté le 03-06-2008 à 14:44:07    

Finalement j'ai réussi a récupérer la variable en insérant le script javascript dans un echo ! le souci c'est que je ne parviens toujours pas à le passer en paramètre à doc_copy.php avec la fonction prototype ajax.request !!

Reply

Marsh Posté le 04-06-2008 à 16:54:51    

tu n'as pas mis tout le script dans un echo, juste la variable ?
montre ton nouveau code

Reply

Marsh Posté le 05-06-2008 à 09:30:20    

Si j'ai tout mis dans un echo, ça ne marchait pas quand je mettait juste la variable :
 
 

Code :
  1. echo "<script type=\"text/javascript\">
  2. function gestionCopy()
  3. {
  4.  
  5.       var nomSite='$nom_site';
  6.      
  7.       alert(nomSite);
  8.   new Ajax.Request('doc_copy.php?nom_site='+nomSite,
  9.   {
  10.    method:'GET',
  11.    onSuccess: gestionReponse
  12.   }
  13.   );
  14. }
  15. function gestionReponse(xhr)
  16. {
  17.     if (xhr.status == 200)
  18.     {
  19.         $('resultat').innerHTML = 'OK';
  20.     }
  21.     else
  22.     {
  23.         $('resultat').innerHTML = xhr.status
  24.                     + ' : ' + xhr.statusText;
  25.     }
  26. }
  27. </script>";


 
Du coup maintenant le alert(nomSite) m'affiche bien la valeur de ma variable mais je n'arrive toujours pas à la transmettre à doc_copy.php en tant que paramètre (donc ça n'execute pas le script php (qui est dans doc_copy.php en arrière plan) !!

Reply

Marsh Posté le 05-06-2008 à 14:02:58    

pas besoin de tout mettre dans un echo
par exemple :

Code :
  1. new Ajax.Request('doc_copy.php?nom_site=<?php echo urlencode($nom_site); ?>',


et si ça ne passe pas c'est que ton erreur est ailleurs
tu debug avec quoi sinon ? avec firebug tu verras de suite les erreurs

Reply

Marsh Posté le 10-06-2008 à 16:49:46    

Bon j'ai mis tout le script dans le head et ça me récupère ma variable ! Mais toujours pas moyen de la transmettre au fichier php (il faut faire un $_GET dans le doc_copy.php c'est bien ça ??)

Reply

Sujets relatifs:

Leave a Replay

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