Partage
  • Partager sur Facebook
  • Partager sur Twitter

demande d'aide sur un script PHP/Ajax

    15 février 2011 à 23:09:10

    Bonjour à tous,

    Je vous contact car j'ai besoins d'un coups de main par rapport à un script que j'essaye de faire. Je débute en Javascript/Ajax et là je planche sur un script que je voudrais créer.

    Je vous explique mon script. Celui-ci vas lancer une page PHP en interne aux serveur, pendant ce temps, un tableau indique l'avancement du script interne par des retours style :

    $("#output").html("Réponse du serveur : " + request.responseText);
    



    Voici ce que j'ai commencer à faire :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/xml; charset=UTF-8" />
    <title>Untitled Document</title>
    <?
    $id = $_GET["id"];
    ?>
    <script type="text/javascript" src="jquery-ui-1.7.2/js/jquery-1.3.2.min.js"></script>
    
    </head>
    
    <body onload="start(<? echo $id ?>)">
    <div id="output">
    State
    </div>
    </body>
    <script language="javascript" type="text/javascript" >
    //<![DATA[
    
    // JavaScript Document
    function start(id)
    	{
    		
    		var request = new XMLHttpRequest();
    		request.open("GET", "start.php", false);
    		request.responseText;
    		request.onreadystatechange = checkData;
    		request.send($id);	
    		if(request.status == 200)
    		{
    			$("#output").html("Réponse du serveur : " + request.responseText);
    		}
    		else 
    		{
    			alerte ("Error-"+request.status + ":" + request.statusText);
    		}
    	}
    function checkData()
    	{
    	if(request.readyState == 0)
    		{
    			$("#output").html("Initialisation en cours");
    		}
    		
    	if(request.readyState == 1)
    		{
    			$("#output").html("Chargement");
    		}
    	if(request.readyState == 2)
    		{
    			$("#output").html("En attente d'une réponse du serveur");
    		}
    	if(request.readyState == 3)
    		{
    			$("#output").html("Réponse en cours");
    		}
    	if(request.readyState == 4)
    		{
    			$("#output").html("Serveur OK");
    			$("#output").html("Réponse du serveur : " + request.responseText);
    		}
    	
    		
    		
    	}
    //]]>
    </script>
    </html>
    


    Comme vous pourrez le constater, la partie "id" est envoyer par une autre page depuis l'URL. Elle est ensuite injectée dans la fonction "onload" du body. Je ne vois pas si elle est reprise par l'ajax ensuite... Quand j'execute le script sans l'ID le serveur me renvoie comme quoi il n'y as pas d'id, ce qui est logique, quand je lui en définie un, il ne m'affiche rien du tous...

    Auriez vous une idée ? Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter

    L'engagement est personnel, la victoire est collective ! Cueille le jour, et ne crois pas au lendemain

      16 février 2011 à 0:27:11

      Bonjour

      Donc quand tu n'envoie aucun id, il te renvoie une erreur et quand tu en envoie un, tu ne reçois rien. Donc ton script fonctionne.Et si c'était juste start.php qui ne retournait rien quand cela fonctionne ?

      Kazerd
      • Partager sur Facebook
      • Partager sur Twitter
        16 février 2011 à 7:25:40

        Bonjour,

        Merci pour ta réponse aussi rapide. Peux être que la page start ne prend pas les données envoyé par ajax. Dois-je lui "dire" quelque chose en particulier pour qu'il prenne les données envoyé par ajax ?

        Merci
        • Partager sur Facebook
        • Partager sur Twitter

        L'engagement est personnel, la victoire est collective ! Cueille le jour, et ne crois pas au lendemain

          16 février 2011 à 10:21:45

          Bonjour

          Le plus simple reste d'aller sur le site, de taper dans la barre de l'url start.php?id=Cequetuveux.
          Normalement tu devrais tomber sur une page blanche. Le contraire serait assez étonnant, sinon le problème viendrait de l'ajax mais je vois pas d'où.

          Kazerd
          • Partager sur Facebook
          • Partager sur Twitter
            16 février 2011 à 20:26:56

            Bonsoir,

            En fait si tu fait : start.php?id=UNID, que celui-ci est valide dans la base de donnée, il fait le reste du script correctement. Sans page blanche :p. Ont doit pas déclarer dans le script start.php quelque chose car actuellement il appel l'id par :
            <? $id = $_GET['id']; ?>
            
            et je sais pas si je doit pas créer une variable pour que PHP le prenne d'ajax...

            Cdt,
            • Partager sur Facebook
            • Partager sur Twitter

            L'engagement est personnel, la victoire est collective ! Cueille le jour, et ne crois pas au lendemain

              18 février 2011 à 21:47:33

              En fait je viens de trouver.

              Pour informations voici le code :

              function start(id)
              	{
              		var id = "<? echo $id ?>";
              		var request = new XMLHttpRequest();
              		request.open("GET", 'start.php?id='+id, false);
              		request.responseText;
              	
              		request.send(null);	
              		
              	if(request.readyState == 0)
              		{
              			$("#output").html("Initialisation en cours");
              		}
              		
              	else if(request.readyState == 1)
              		{
              			$("#output").html("Chargement");
              		}
              	else if(request.readyState == 2)
              		{
              			$("#output").html("En attente d'une réponse du serveur");
              		}
              	else if(request.readyState == 3)
              		{
              			$("#output").html("Réponse en cours");
              		}
              	else if(request.readyState == 4)
              		{
              			$("#output").html("Serveur OK");
              		}
              
              	}
              

              Maintenant, je voudrais que lorsqu'il passe une étape, il crée un "<div>" mais là je sèche ^^. Peux ton avec une boucle "while" créer des "<div>" ?
              • Partager sur Facebook
              • Partager sur Twitter

              L'engagement est personnel, la victoire est collective ! Cueille le jour, et ne crois pas au lendemain

              demande d'aide sur un script PHP/Ajax

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown