Pb execution ajax

Invité
Invité n'ayant pas de compte PHPfrance

10 mars 2009, 20:15

Voila j'ai du me mettre l'ajax pour actualiser une parti de page en faite plus une parti de code .

Je souhaite interroger ma base de donnée toute les X sec afin de verifier que le contenu n'ai pas changer (La base de donnée est aussi en relation avec un programme )

Et je me retrouve face a un pb , mon code n'est apparament pas exécuté et je n'arrive pas a resoudre mon pb .

J'ai donc 3 fichier :
-index10.php (ma page web)
-e_requete.js (javasript)
-e_requete.php(page appelé par l'ajax)


index10.php

Code : Tout sélectionner

<html> <head> <title>Projet Domus</title> <link type="text/css" rel="stylesheet" href="css.css"/> <style type="text/css"> </style> <script type="text/javascript" src="./e_requete.js"></script> </head> <body> <div id="conteneur"> <div id="test"></div> // la div de l'ajax </div> </body> </html>
e_requete.js

Code : Tout sélectionner

function refresh_div() { 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..."); xhr_object = false; } //var method = 'POST'; //var filename = 'e_requete.php'; xhr_object.open('POST','http://localhost/Domus/e_requete.php', true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { var tmp = xhr_object.responseText; document.getElementById('test').innerHTML = tmp; } } xhr_object.send(null); setTimeout('refresh_div()', 5000); }
e_requete.php

Code : Tout sélectionner

<p>test</p> <?php //Connection a la base de donnée $mon_dsn="Domus2"; // identifiant du dsn $user="root"; // le login ici $pwd=""; // et le mot de passe $cnx = odbc_connect( $mon_dsn , $user, $pwd ); //recuperation des donner des chekbox //Recuperation des informations sur l'etat de l'alarme $sql = "SELECT * FROM Alarme" ; //ereur sur la base de donnée $rs = odbc_exec($cnx, $sql); //execution de la requete $sql sur $cnx --NOM-- $alarmeChambre=odbc_result($rs,1); //Reponse de la donner dans $validationNom $alarmeCuisine=odbc_result($rs,2); $alarmeSalon=odbc_result($rs,3); $alarmeSalleDeBain=odbc_result($rs,4); $alarmeJardin=odbc_result($rs,5); $alarmeEntree=odbc_result($rs,6); $alarmeFenetre=odbc_result($rs,7); if($alarmeChambre==1 || $alarmeCuisine==1 || $alarmeSalon==1 || $alarmeSalleDeBain==1 || $alarmeJardin==1 || $alarmeEntree==1 || $alarmeFenetre==1) { echo"1"; } else { echo"Maison calme"; }
L'erreur poura peut etre vous sautez au yeux plus qu'a moi qui galere ....
"Test" n'apparait meme pas dans ma div :s

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 mars 2009, 16:20

Et.. euh.... le tout premier appel à refresh_div(), tu le fais où ?
Parce que si tu ne l'appel jamais, elle risque pas de te renvoyer de résultat avant un certain bout de temps ;)

Tu peux éventuellement sortir le setTimeout() de ta fonction et le remplacer par un setInterval() :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 1 Messages

08 avr. 2009, 10:12

Bonjour,
je ne t'apporte pas de réponses, mais comme je suis dans le même cas que toi j'aimerai te poser plutôt quelques questions :
- pourquoi la méthode 'post', dans les tutoriaux que j'ai lu je vois 'get' ?
- je fais moi aussi une requête vers un script php qui me retourne un echo pour actualiser un div, mais lorsque j'appelle le script par un SetTimeout + httprequest,
* j'ai systématiquement une erreur de syntaxe(?) sur le 3ème caractère de la chaine texte retournée par l'echo (j'utilise la console d'erreur de FireFox) avec donc des pb d'actualisation;
* j'ai aussi des pb sur les caractères diacritiques qui ne sont pas traités
alors que mon script php fonctionne très bien (avec caractères diacritiques corrects) lorsque je l'appelle "normalement" au chargement de la page principale.

Si tu as résolu ton pb ou si tu as des pistes pour les miens ...
je suis preneur.
Merci