Variable dans Div an Ajax

Résolu
none61 Messages postés 90 Statut Membre -  
none61 Messages postés 90 Statut Membre -
Bonjour tout le monde,

Je me permet de poster ici car je n'arrive pas a afficher le contenu d'un variable PHP dans une Div en javascript.

Je m'explique:

J'ai une feuille parse.php qui parse un fichier xml distant et me remonte pour l'exemple, la date du jour.


<?php
$xml=simplexml_load_file("http://192.168.1.6/status.xml") or die("Error: Cannot create object");
$date=$xml->day;
echo $date;
?>


En Javascript, j'arrive bien a récupérer et à mettre le contenu complet de ma feuille parse.php dans ma div qui a pour ID "test".


setInterval(function() {
var url = '../parse.php';
$.post(url, function(data){
$('#test').html(data);
});
}, 2000);



Cependant j'amenais n'afficher que la variable "date" afin de pouvoir récupérer d'autre variable et les afficher dans d'autre div.

Que dois-je mettre a la place de :


$('#test').html(data);


Merci a vous.

11 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    commence par nous montrer le résultat d'un console.log de ta variable data histoire qu'on voit à quoi ressemblent les données que tu reçois dans ton JS ...

    Il serait peut-être pas mal également de renvoyer les données au format JSON
    plus simple ensuite pour les manipuler.
    0
  2. none61 Messages postés 90 Statut Membre
     
    Bonjour Jordan45, Merci pour ta réponse ;-)

    j'ai testé

    setInterval(function() {
    var url = '../parse.php';
    $.post(url, function(data){
    $('#test').html(data);
    console.log(data);
    });
    }, 2000);


    Dans la console d Firefox cela me retourne ceci :


    Il n'y a donc en effet que la date, ce qui est normal vu que mon Php ne fait un écho QUE sur la date pour le moment.
    0
  3. none61 Messages postés 90 Statut Membre
     
    Pour information voici ce que me retourne le console.log pour le Php suivant:


    <?php
    $xml=simplexml_load_file("http://192.168.1.6/status.xml") or die("Error: Cannot create object");
    $date=$xml->day;
    $btn=$xml->led0;
    echo $date;
    echo $btn;
    ?>


    On remarque que le contenu de "led 0" vaut 0 et que la div ayant pour ID "test" contient l'ensemble des deux variables...
    0
  4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Il est étonnant, dans ton console.log qu'il y ait du code html ....
    Tu peux nous montrer le code complet du fichier PHP (celui qui permet de récupérer le contenu de ton xml ).
    N'y aurais tu pas mis du code html ??

    et le contenu du fichier status.xml serait pas mal également.

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. none61 Messages postés 90 Statut Membre
     
    Bien vu pour le code html dans le php ;-)

    Voici la page php complète:



    <!DOCTYPE html>
    <html>
    <body>

    <?php
    $xml=simplexml_load_file("http://192.168.1.6/status.xml") or die("Error: Cannot create object");
    $date=$xml->day;
    $btn=$xml->led0;
    echo $date;
    echo $btn;
    ?>

    </body>
    </html>


    Voici la page status.xml :
    This XML file does not appear to have any style information associated with it. The document tree is shown below.
    <response>
    <led0>0</led0>
    <led1>0</led1>
    <led2>0</led2>
    <led3>0</led3>
    <led4>0</led4>
    <led5>0</led5>
    <led6>0</led6>
    <led7>0</led7>
    <led8>0</led8>
    <led9>0</led9>
    <led10>0</led10>
    <led11>0</led11>
    <led12>0</led12>
    <led13>0</led13>
    <led14>0</led14>
    <led15>0</led15>
    <led16>0</led16>
    <led17>0</led17>
    <led18>0</led18>
    <led19>0</led19>
    <led20>0</led20>
    <led21>0</led21>
    <led22>0</led22>
    <led23>0</led23>
    <led24>0</led24>
    <led25>0</led25>
    <led26>0</led26>
    <led27>0</led27>
    <led28>0</led28>
    <led29>0</led29>
    <led30>0</led30>
    <led31>0</led31>
    <btn0>up</btn0>
    <btn1>up</btn1>
    <btn2>up</btn2>
    <btn3>up</btn3>
    <btn4>up</btn4>
    <btn5>up</btn5>
    <btn6>up</btn6>
    <btn7>up</btn7>
    <btn8>up</btn8>
    <btn9>up</btn9>
    <btn10>up</btn10>
    <btn11>up</btn11>
    <btn12>up</btn12>
    <btn13>up</btn13>
    <btn14>up</btn14>
    <btn15>up</btn15>
    <btn16>up</btn16>
    <btn17>up</btn17>
    <btn18>up</btn18>
    <btn19>up</btn19>
    <btn20>up</btn20>
    <btn21>up</btn21>
    <btn22>up</btn22>
    <btn23>up</btn23>
    <btn24>up</btn24>
    <btn25>up</btn25>
    <btn26>up</btn26>
    <btn27>up</btn27>
    <btn28>up</btn28>
    <btn29>up</btn29>
    <btn30>up</btn30>
    <btn31>up</btn31>
    <day>31/03/2020</day>
    <time0>14:37:25</time0>
    <analog0>215</analog0>
    <analog1>0</analog1>
    <analog2>0</analog2>
    <analog3>0</analog3>
    <anselect0>6</anselect0>
    <anselect1>1</anselect1>
    <anselect2>0</anselect2>
    <anselect3>0</anselect3>
    <count0>101</count0>
    <count1>27</count1>
    <count2>8</count2>
    <tinf20>----</tinf20>
    <version>3.05.35</version>
    </response>
    
    0
  7. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Côté PHP
    <?php
    
    $xml=simplexml_load_file("http://192.168.1.6/status.xml") or die("Error: Cannot create object");
    
    $result = array('date'=>$xml->day , 'btn'=>$xml->btn);
    echo json_encode($result);
    
    ?> 
    

    et rien d'autre ! pas de html.. que le code que je t'ai donné !

    Et côté JS :
    setInterval(function() {
    	var url = '../parse.php';
    	
    	$.ajax({ cache: false,
    		url: url,
    	    dataType :"json"
    	}).done(function (data) {
    		if(typeof(data)!="undefined" && data!=null ){
    	    console.log(data);
    		$('#test').html(data.date);
    	   }else{
    	     console.log('No Data to display');
    	   }
    	}).fail(function (jqXHR, textStatus) {
    		console.log('ERREUR AJAX',jqXHR, textStatus);
    		alert("Erreur Ajax");
    	});
    
    }, 2000);
    

    0
  8. none61 Messages postés 90 Statut Membre
     
    Merci pour ta réponse, je n'ai pas mis de html ;-)

    Bon j'ai testé ton code, au niveau Php, cela me retourne :


    Ton code transforme le .xml en .Json ? c'est énorme !

    Par contre coté javascript, rien ne s'affiche dans ma page ni dans mon console.log
    Je vais re-contrôler quand même défis que j'ai fais une erreur...
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Petit oublie de ma part dans le js, il faut ajouter le type

       setInterval(function() {
      	var url = '../parse.php';
      	
      	$.ajax({ cache: false,
      		url: url,
                      type : "POST",
      	     dataType :"json"
      	}).done(function (data) {
      		if(typeof(data)!="undefined" && data!=null ){
      	    console.log(data);
      		$('#test').html(data.date);
      	   }else{
      	     console.log('No Data to display');
      	   }
      	}).fail(function (jqXHR, textStatus) {
      		console.log('ERREUR AJAX',jqXHR, textStatus);
      		alert("Erreur Ajax");
      	});
      
      }, 2000);
      
      0
      1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        au passage, pour débuguer de l'ajax je te conseille d'utiliser Firefox.
        et de bien penser à activer, dans la console, le debug du xhr

        ensuite, tu pourras voir tes requêtes POST :
        0
  9. none61 Messages postés 90 Statut Membre
     
    Merci à toi,

    Je dois être une chèvre car je n'arrive n'y a faire fonctionner ton Js ni a voir la requête POST dans xrh..

    Je fouille ...
    0
  10. none61 Messages postés 90 Statut Membre
     
    Donc, je n'arrive rien a voir lorsque je clic sur xhr ..

    J'ai rajouté un alerte(data.date); pour voir ce qu'il me retournait et le résultat est:
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Moi je veux voir la console de ton navigateur...
      C'est là qu'il y a les infos utiles
      0
  11. none61 Messages postés 90 Statut Membre
     
    J'aurais bien aimé, mais il n'y a rien d'affiché dans la console

    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Tu n'as pas activé le XHR regarde bien l'écran de ta console
      0
      1. none61 Messages postés 90 Statut Membre > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        J'ai changé de Pc car sous Mac, ça ne fonctionnait pas...



        Si je ne dis pas de bêtise, date et btn ne contiennent rien ?
        0
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > none61 Messages postés 90 Statut Membre
         
        Et si tu fais comme dans l'image que je t'ai donné en dépliant la requête ajax est en nous montrant l'onglet réponse
        0
      3. none61 Messages postés 90 Statut Membre > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        0
  12. none61 Messages postés 90 Statut Membre
     
    J'ai trouvé ;-)

    setInterval(function() {
            var url = '../parse_ipx.php';
            
            $.ajax({ cache: false,
                    url: url,
                    type : "POST",
                 dataType :"json"
            }).done(function (data) {
                    if(typeof(data)!="undefined" && data!=null ){
                console.log(data);
                    $('#test').html(data.date[0]);
               }else{
                 console.log('No Data to display');
               }
            }).fail(function (jqXHR, textStatus) {
                    console.log('ERREUR AJAX',jqXHR, textStatus);
                    alert("Erreur Ajax");
            });
    
    }, 2000);
    
    


    EDIT : Correction des balises de code pour y mettre le LANGAGE
    Merci d'y penser à l'avenir.
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Tu peux donc mettre le sujet en Résolu.
      Bonne soirée
      0
      1. none61 Messages postés 90 Statut Membre > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        C'est ce que je vais faire, encore merci pour ton aide, ça m'a débloqué ;-)
        0