Ajax

Bonjour,

j ai reussie a faire un script qui envoie les donnee grace au code ajax
mes probleme dans la deuxieme page je n arrive pas a recuperer les variable envoyer
voici le code

:::::::::::::::::::
<script type='text/JavaScript'>
function go(){

var xhr_object = null;

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
var url = "test.php";
var dede = "ca marche";
var pos="variable1=coco&variable2=coco2";
xhr_object.open("POST", url, false);
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
xhr_object.send(pos);

if(xhr_object.readyState == 4 && xhr_object.status == 200){
alert("Requête effectuée !");
alert(xhr_object.responseText);
}
else {

alert("Requête NON effectuée !");
}
}
</script>
//////////////////////////////
test.php
***************
<?php

$az = $_POST['variable1'];
echo $az;
?>

merci de votre aide
MERCI INFINIMENT DE VOTRE AIDE
Configuration: Windows XP Internet Explorer 7.0

20 réponses

  1. si je suis interesser par ajax c est que ajax dans la premier page il affiche le resultat des envoie des donnee
    alors avec php c est pas possible

    ajax dans la premier page affiche si les donnee en etait envoyer
    voila pourquoi je me case la tete a essayer de fait un script d'envoie de donnee en ajax et pas php
    0
    1. La je ne te suis pas trop, je ne vois pas ce que tu cherches à faire

      - en utilisant AJAX, on envoie les données et on affiche la réponse du script php dans la m^me page sans avoir besion d'afficher une autre page

      - en php on envoie les données vers un script php celui de action="...." du formulaire et ce script charge une nouvelle page dans laquelle il peut mettre la réponse
      si tu fais l'essai avec les bouts de code que je viens de te donner tu verra bien que c'est possible
      0
      1. le probleme c est que je suis obliger d'utiliser ajax car avec ajax il m affiche une reponse si les donnee ont etait envoyer ou pas et en php ca c est pas possible enfin je croie.
        0
        1. alors si tu veux envoyer une valeur a une autre page, tu n'as pas besoin de Ajax
          il te faut un formulaire pour pouvoir le faire en méthode POST

          page1.html
          <html>
          <form name="form1" method="post" action="test.php">
          <input type="text" name="variable1" value="coco"><br />
          <input type="submit" name="envoyer" value="Vers test"><br />
          
          
          </form>
          </html>


          et test.php
          <?php
          
          $az = $_POST['variable1'];
          echo 'La valeur reçue est :'.$az;
          ?> 
          0
          1. je ten suplie par pitie aide moi
            pitie pitie
            0
            1. moi ce que je veu c est envoyer la var a la deuxieme page est l'afficher avec echo $_POST['variable1'];
              ce probleme va me rendre fou
              0
              1. la variable n etait pas envoyer car elle ne s'affiche pas dans la deuxieme page.

                Le principe d'Ajax est justement de ne pas recharger la page donc pas de deuxième page

                Principe:
                - dans une page 1 html par un lien ou un bouton tu lances le script javascript/Ajax
                - ce dernier appelle en "arriere plan" sans rechargement de la page un script php sur le serveur
                - en lui passsant un ou plusieurs parametres (variable1 variable2 dans ton cas)
                - le script php récupere ces valeurs
                - fait un traitement (dans ton cas juste un echo de la valeur reçue)
                - lorsque le navigateur reçoit la réponse , le script javascript/Ajax par xhlr_object.onreadystaechange=
                lance une fonction qui traite la réponse

                dans ton cas c'est juste une boite d'alert donc une boite de dialogue javascript qui te dit la réponse, mais tu peux faire écrire la réponse a un endroit précis de la page1, dans un <div id="reponse"></div>
                par

                document.GetElementById('reponse').innerHTML=xhr_object.responseText;
                0
                1. le probleme vien peu etre de la configuration de mon serveur ?????????????
                  0
                  1. salut
                    c est ce que je fessai debut le debut j'executer la page sur mon serveur local avec WAMPSERVEUR
                    puis j ai voulu teste diretement sans le serveur est ca ma mis erreur acces refuser.
                    mes quand j'excuter la page coter serveur ca ne m'affiche pas ce message mes ca ne marche pas quand meme car la variable n etait pas envoyer car elle ne s'affiche pas dans la deuxieme page.
                    0
                    1. C'est normal sur IE si pour lancer une page html tu cliques sur le nom dans l'explorateur, IE bloque l'accès à javascript , tu dois avoir une fenêtre ou qq chose pour autoriser le script

                      pour faire tes test il te faut un serveur, pour pouvoir ensuite executer le php

                      si tu ne l'as pas, télécharges et installes wamp sur ton PC

                      et pour test un script tu tapes dans la barre d'adresse de ton navigateur

                      http://127.0.0.1/nom_de_ton_script.html

                      wamp doit être lancé avant bien sur
                      0
                      1. je trouve ca bizarre quand je execute le code ajax il me mes

                        Détails de l’erreur de la page Web

                        Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.2)
                        Horodateur : Tue, 29 Sep 2009 08:00:46 UTC

                        Message : Accès refusé.

                        Ligne : 38
                        Caractère : 2
                        Code : 0
                        URI : file:///C:/wamp/www/ajax%20test/Copie%20de%20ajax.html

                        Message : Accès refusé.

                        Ligne : 38
                        Caractère : 2
                        Code : 0
                        URI : file:///C:/wamp/www/ajax%20test/Copie%20de%20ajax.html

                        Message : Accès refusé.

                        Ligne : 38
                        Caractère : 2
                        Code : 0
                        URI : file:///C:/wamp/www/ajax%20test/Copie%20de%20ajax.html
                        0
                        1. salut

                          j ai tester un deuxieme foie le code est ca ne marche pas.
                          0
                          1. merci de l'interet que tu porte a mon probleme
                            pour le moment je ne peu pas continue a rester devant mon ordi car sinon je vait devenir fou
                            alors si t est d'acord rendez vous demain pour resoudre le probleme

                            dit moi ta variable php $POST[var] elle s'affiche dans ta deuxieme page
                            0
                            1. comme ça ça marche

                              attention il ya un ordre a respecter previosn traitement d ela réponse avant de faire l'envoi, ensuite j'ai modifie un peu l'initialisationn de la request et séparé la fonction traitement de la réponse

                              chez moi ça marche ainsi:

                              <script type='text/JavaScript'>
                              function go(){
                              
                              var xhr_object = false;
                              
                              	//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
                                      if (window.XMLHttpRequest) { // Mozilla, Safari,...
                                          xhr_object = new XMLHttpRequest();
                                          if (xhr_object.overrideMimeType) {
                                              xhr_object.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
                                          }
                                      } else if (window.ActiveXObject) { // IE
                                          try {
                                              xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
                                          } catch (e) {
                                              try {
                                                  xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
                                              } catch (e) {}
                                          }
                                      }
                              
                                      if (!xhr_object) {
                                          alert('Abandon :( Impossible de créer une instance XMLHTTP');
                                          return false;
                                      }
                              		  
                              	var url = "test.php";
                              	var dede = "ca marche";
                              	var pos="variable1=coco&variable2=coco2";
                              //cette ligne avant la partie open et send !!
                              	xhr_object.onreadystatechange = function() {traitementReponse(xhr_object); }
                              
                              	xhr_object.open("POST", url, true);
                              	xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                              	alert ("Data envoyées: "+pos);
                              
                              	xhr_object.send(pos);
                              }
                              ////fonction traitement de la réponse
                              function traitementReponse(xhr_object) {
                              	var affich="";
                              	if (xhr_object.readyState == 4) {
                              		if (xhr_object.status == 200) {
                              					// cas avec reponse de PHP en mode texte:
                              			// elements reçus
                              			var reponse=xhr_object.responseText;
                              			alert(reponse);
                              				
                              		} 
                              		else {
                                              alert('Un problème est survenu avec la requête.');
                                      }
                                  }
                              }
                              </script>
                              <a href="javascript:go();">essai</a>
                              0
                              1. ca me mes requete non effectuer et la variable ne s affiche pas
                                0
                                1. j ai fait exatement comme tu me la dit est ca ne marche pas
                                  les deux fichier ce trouve dans le meme dossier
                                  je ne comprend rien.
                                  0
                                  1. Si mis à TRUE , l'exécution de la fonction JavaScript se poursuivra en attendant l'arrivée de la réponse du serveur.
                                    Si mis à FALSE alors synchrone(bloquant), sans réponse le script est bloqué !


                                    la reponse que tu as est celle de la condition:

                                    if(xhr_object.readyState == 4 && xhr_object.status == 200){ non execiutée

                                    donc la requette part bien mais tu n'as pas ma réponse

                                    ton script php est bien dans le même dossier que ta page qui contient le script ajax ?

                                    as tu modifié l'autre ligne ('content type ...

                                    0
                                    1. quand je mes xhr_object.open("POST", url, true);
                                      ca m affiche requete non effectue
                                      donc je les mis a false
                                      0
                                      1. je vai essayer est ca ne marche pas
                                        0
                                        1. Essayes comme ça:

                                          tu devrait au moins avoir la boite d'alerte Data envoyée: .....

                                          <script type='text/JavaScript'>
                                          function go(){
                                          
                                          var xhr_object = null;
                                          
                                          	if(window.XMLHttpRequest){ // Firefox
                                          			xhr_object = new XMLHttpRequest();
                                          	}else if(window.ActiveXObject){ // Internet Explorer
                                          		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
                                          	}else { // XMLHttpRequest non supporté par le navigateur
                                          		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                                          		return;
                                          	}
                                          	var url = "test.php";
                                          	var dede = "ca marche";
                                          	var pos="variable1=coco&variable2=coco2";
                                          	//xhr_object.open("POST", url, false);
                                          	xhr_object.open("POST", url, true);
                                          	//xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
                                          	xhr_object.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                                          	alert ("Data envoyées: "+pos);
                                          	xhr_object.send(pos);
                                          
                                          	if(xhr_object.readyState == 4 && xhr_object.status == 200){
                                          		alert("Requête effectuée !");
                                          		alert(xhr_object.responseText);
                                          	}else {
                                          
                                          		alert("Requête NON effectuée !");
                                          	}
                                          }
                                          </script>
                                          0