Rafraichir requette sql apres xmlhttprequest

Fermé
aljegre Messages postés 11 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 31 juillet 2014 - 26 févr. 2014 à 16:50
aljegre Messages postés 11 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 31 juillet 2014 - 26 févr. 2014 à 22:05
bonjour
mon problemme, comment refrechir le requette sql pour affiche les nouveau message
j'ai 2 page different //
voire_travaux.php => pour ecrire et lire le messages .
insert_commentaire.php => script php just pour inserer message dans bdd .
et fonctions.js => script js pour fait le xmlhttprequest depuit voire_travaux.php "include dans voire_travaux.php" .
" (je veut pas le retour d'infos avec le xmlhttp request--ma page voire_travaux.php m'affiche tout)
/////////////
voire_travaux.php
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="../../css/boite_poster/voire_tansik_tout.css" rel="stylesheet" />
<title>voire_travaux</title>
<script src="../../javascript/fonctions.js"></script>
</head>
<body>
<?php
if(isset($_POST['reply']))
{
$reply = $_POST['reply'] ;
}
if(isset( $_GET['reply']))
{
$reply = $_GET['reply'] ;
}
try
{
$bdd = new PDO('mysql:host=localhost;dbname=jeser', 'root', '' ,
array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<?php

$reponse = $bdd->prepare('SELECT * FROM xxx WHERE id = ? ');
$reponse->execute(array( $reply));
while($donnees = $reponse->fetch())
{
$yd = $donnees['id'] ;
$poster = $donnees['poster'] ;
// des text a affichier

// fin de text


$repo = $bdd->prepare('SELECT * FROM xxx_commentaire WHERE id = ? ');
$repo->execute(array($reply));
echo '<div id="refreaich">';
while($don = $repo->fetch())
{
// affiche des commentaire relative au sujet

}
$repo->closeCursor();
echo '</div>';

?>
<div id="bouton_ajout_cmnt">
<form action="" name="testforms" method="post" >
<input type="text" name="message" id="message" required />
<input type="hidden" name="po" id="po" value="<?php echo $poster ; ?>" />
<input type="hidden" name="idid" id="idid" value="<?php echo $yd ; ?>" />
<input type="hidden" name="ok" id="ok" value="non" />
<input type="hidden" name="reply" id="reply" value="<?php $reply ?>" />
<input type="hidden" name="tout" id="tout" value="oui" /><br/>
<input id="send" type="button" value=" snd" onclick="executeSample ()" />
</form>
</div>

<?php
} // fin du while
$reponse->closeCursor();
?>
</body>
</html>

insert_commentaire.php

// connex au bdd (ici ..........)
$rep = $bdd->prepare('INSERT INTO tansik_commentaire (repondeur, poster, id_tansik, message, ok, time) VALUES(?, ?, ?, ?, ?, now())');
$rep->execute(array($ssnm,$_POST['po'], $_POST['idid'],$_POST['message'],
$_POST['ok'] ));

script xmlhttp request

function callScript ( scriptName, args )
{
var xhr_object = null;
// ### Construction de l'objet XMLHttpRequest selon le type de navigateur
// Cas des navigateurs de type Netscape (Firefore, Conqueror, etc.)
if(window.XMLHttpRequest)
xhr_object = new XMLHttpRequest();
// Cas du navigateur Internet Explorer
else if(window.ActiveXObject)
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// Cas des navigateurs ne comprenant pas cette technologie (anciens navigateurs)
else
{
// XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("POST", scriptName, true);
// Définition du comportement à adopter sur le changement d'état de l'objet
// XMLHttpRequest
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// Envoi de la requête
xhr_object.send(args);
}
function executeSample ()
{
// --- Récupération des paramètres nécessaire au script PHP
var message = document.getElementById("message").value;
var po = document.getElementById("po").value;
var idid = document.getElementById("idid").value;
var ok = document.getElementById("ok").value;
var tout = document.getElementById("tout").value;

var data = "po=" + po + "&message=" + message + "&idid=" + idid + "&ok=" + ok + "&tout=" + tout;
// --- Appel au script PHP de traitement
callScript("../../models/boite_poster/insert_commentaire_tansik.php",data);
}

//**// j'attend pas de retour d'infos depuit le script js - mon page d'affiche va affiche tout depuit bdd

pleas help
A voir également:

2 réponses

Salut,

Avec AJAX(xmlhttprequest) l'intérêt est que vous travaillez de façon asynchrone.
Sinon il faut tout refaire(et bon AJAX autant s'en passer si vous êtes synchrone, que vous rechargez toutes les informations plutôt que d'utiliser les métadonnées(XML)).
Renseignez vous du côté des états ou statut utilisé par vos requêtes AJAX:

http://www.xul.fr/xml-ajax.html#ajax-xmlhttprequest
1
aljegre Messages postés 11 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 31 juillet 2014
Modifié par aljegre le 26/02/2014 à 22:11
oui, je connais que asynchrone n'attend pas la fin de la requete et synchrone fait le contraire // dans mon exempl je fait "true"
-- xhr_object.open("POST", scriptName, true); (asynchrone) moi je veut seulement que ma script envoi les donnes au php pour l'insert au bdd et je ne suis pas dans le besoin d'info retournee par xmlhttp (si je tout dans ma bdd ma page d'affiche s'occupe de l'affich tou)

mon script xmlhttp marche bien ('quand je click envoyer ['la page ne fait au q'une action'] et le message s'envoi au bdd et q'uand je refraiche la page le message s'affich bien)// mais je veux q'ill exist un auto refraiche au retour de xmlhttp ..
ya t il une solution = if(xhr_object.readyState == 4) { si l'envoi et bon, une fonction qui refraiche un div contien ma requette sql daffiche message }

j'esper que je comprend votre reponse exact si non :
ya t il une erreur dans mes codes ?
merci pour tout
0