11548 sujets

JavaScript, DOM et API Web HTML5

Salut à tous
voici mon code qui fonctionne tres bien,


<script language="javascript" type="text/javascript"> 
function refresh_div() { 
    var xhr_object = null; 
    if (window.XMLHttpRequest) { 
        xhr_object = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
        try { 
            xhr_object = new ActiveXObject('Microsoft.XMLHTTP'); 
        } catch(e) { 
        } 
    } else { 
    } 
    var method = 'POST'; 
    var filename = 'page.php'; 
    xhr_object.open(method, filename, true); 
    xhr_object.onreadystatechange = function() { 
        if(xhr_object.readyState == 4) { 
            var texte = xhr_object.responseText; 
            document.getElementById('div_son').innerHTML = texte; 
        var timer=setTimeout("refresh_div()",5000); // rafraichie toute les 1sec 
        } 
    } 
    xhr_object.send(null); 
} 
</script>


Je voudrais savoir comment recuperer le valeurs se trouvant dans texte

Admettons si j'ai :
$truc1, $truc2, $truc3

je veux recuperer les valeurs de chacun , et les utiliser si besoin est

exemple,
si truc1=="ok" alors....
si truc 2=="ok" alors..

Mais pour cette partie je peux me debrouiller, je veux juste recuperer les variables qui sont dans "texte"

Merci encore de m'aider
Modifié par tidave971 (23 Apr 2010 - 17:18)
Salut à toi.

Avant qu'un modérateur vienne, les balises <code> que tu as mis sont erronées. Il faut mettre code entre crochet.

Pour ce qui est de récupérer tes variables je fais comme ca moi =>


http.open("POST","./fichier.php",true);
http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http.send(envoi);
http.onreadystatechange = retour_ajax;


Pour les envois (la variable envoi contient ce que tu envoi en POST a fichier.php) et pour le retour =>


function retour_ajax(){
    if(http.readyState == 4){
         var reponse = http.responseText;
    }
}

Après tu découpe ton responseText comme tu veux.

Si tu avais dans ta page php kkchoz comme

echo $truc1."||".$truc2."||".$truc3;


tu fais un split par || du responseText et voilou.

Rude
Modifié par ffwrude (23 Apr 2010 - 16:52)
Bah étant donné que je sais pas comment est ton code PHP dans page.php j'en sais rien moi Smiley lol

Tu prend ta variable de reponse et tu la découpe pour l'afficher dans ta div.


      var texte = xhr_object.responseText.split("||"); 
      document.getElementById('div_son').innerHTML = texte[0]; 
      document.getElementById('div_son1').innerHTML = texte[1]; 
      document.getElementById('div_son2').innerHTML = texte[2]; 


Mais je vois pas trop ce que tu veux faire et comment.

Si ton but est d'envoyer des paramètres à une page php en ajax et de récuperer la sortie dans une div en sortie de l'ajax tu es sur la bonne voix.

Disons que je pense pas avoir compris ce que tu veux faire après reflexion.

Rude
Modifié par ffwrude (23 Apr 2010 - 17:34)
Salut
Alors je vais etre concret

quand je fais un alert sur ma variable "texte", je vois toute une page s'afficher, pas seulement les variables, tout est envoyé.

alors ma page "page.php" est un epage qui liste une table

l'affichage se fait ainsi




   <? // je recuperes le nombre de connectes par exemple ici 4 pour simplifier
$nb_connectes=4 

// visites
$query = "SELECT * FROM connectes order by id" ;
$result = mysql_query($query);
while ($val = mysql_fetch_array($result)) { 
$pseudo_connecte=$val["pseudo"] ;
 $pays=$val["pays"] ;

echo "$pseudo_connecte" . '  ' . $pays . "<br>" ;

} ?>




donc c'est tout simple la page affiche les connectes et leur pays,
j'ai reduit au plus simple pour poster

merci encore pour votre aide
Et bien je ne vois pas le problème. Tu pourrais même écrire une page HTML dans ta page appellée en AJAX.

Ce que je ne comprend pas c'est ce que tu veux faire de cette sortie. Si c'est afficher ton nombre de connéctés dans une div, il suffit qu'en retour de l'ajax tu place ca dans le innerHTML d'un élément de ton choix (une div ou un td par exemple).

Tu aura en sortie de l'ajax TOUS les echos que tu fais. (erreur php,sql comprises).

Exemple :


page.php =>
$pseudo_connecte = "tidave971";
$pays = "France";
echo $pseudo_connecte." ".$pays."<br />";

Quand tu fais un alert de ton responseText tu va avoir ca =>

tidave971 France

(il risque peut être de t'afficher <br /> aussi).

Et ensuite dans le JS tu fais un truc du genre


document.getElementById("div_des_connects").innerHTML = mavariable.responseText;


Sinon tu sors une chaine de l'ajax comme ca =>


$reponse .= $pseudo."||".$pays."/*/"; //En assumant que t'es plusieurs trucs dans une boucle
echo $reponse


et dans la réponse


var decoupage = mavariable.responseText.split("/*/");
//Va te donner un tableau avec $pseudo."||".$pays;
for(var i=0;i<decoupage.length;i++){
    var decoupage_2 = decoupage[0].split("||");
    document.getElementById("ma_div").innerHTML += "Pseudo : "+decoupage_2[0]+" du pays "+decoupage_2[1]+"<br />";
}


Donc la ... Soit j'ai vraiement rien compris. soit avec ca tu peux largement t'en sortir.