[AJAX] interface boucle retour fonction Ajax dans code Php
Bonjour
Je suis nouveau dans ajax , et c'est la première que j'utilise pour faire un petite application.
l'interface consiste à shipper (au moyen d'une douchette ) un numero dans un champs texte .
la deuxième etape consiste à ecrire dans un fichier texte chaque valeur lue au moyen de la douchette( la forcement la page se raffraichit), l'ecriture (ca fonctionne sans faut via une requette ajax)
la troisièmme étape consiste à lire les valeurs existant dans le fichier texte et via une seconde requette ajax tester le resultat , en fonction de celui ci j'ajouterai une ligne de tableau avec un message dedans .
Mon problème est que malgrés que je n'ai aucun retour d'erreur dans le script , le tableau ne s affiche pas avec toute les valeurs entrées (et qui sont enregistrées dans le fichier texte). ..er des moment j'ai une ligne qui apparait..Bref il foit y avoir un Bug quelques part ( qui concerne probablement le coté asynchrone d'ajax).
Je vous expose en bas mon script en ésperant avoir un Piste ou une proposition ...
<HTML>
<head>
<script type="text/javascript" src="XHRConnection.js"></script>
<style type="text/css">
<!--
.libele {
position: absolute;
top: 7em;
left: 20%;
}
-->
</style>
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
<script type='text/javascript'>
function ecrire(saisie){
var XHRt = new XHRConnection();
// On crée une variable pour stocker le contenu de la zone de saisie
XHRt.appendData("texte", document.getElementById('Saisie').value);
// On soumet la requête
// Signification des paramères:
// + On indique à l'objet qu'il faut appeler le fichier fwrite.php
// + On utilise la méthode POST, adaptée l'envoi d'information
// + On indique quelle fonction appeler lorsque l'opération a été effectuée
XHRt.sendAndLoad("fwrite.php", "POST");
}
function go(saisie){
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
// On défini ce qu'on va faire quand on aura la réponse
xhr.open("POST","updatercv.php",true);
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
//alert(document.forms['form_pointage'].elements['saisie'].value);
var newRow = document.getElementById('tablist').insertRow(-1);
var newCell = newRow.insertCell(0);
//saisie=document.getElementById('saisie').value;
newCell.innerHTML =saisie;
//if (! newCell.innerHTML==''){
newCell = newRow.insertCell(1);
if(parseInt(xhr.responseText)==2){
newCell.style.backgroundColor="red";
newCell.innerHTML ="Non effectue";
document.getElementById('saisie').value='';
}
if(parseInt(xhr.responseText)==1){
newCell.style.backgroundColor="green";
newCell.innerHTML ="OK";
document.getElementById('saisie').value='';
}
// }
} //
//document.getElementById('saisie').readonly=0;
}
// Ici on va voir comment faire du post
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ici, l'id du client
// saisie= document.getElementById('saisie');
xhr.send("rcv_no="+saisie.value);
}
</script> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
</head>
<body onload="document.forms['form_pointage'].elements['saisie'].focus();">
<div class ="libele">
Pointage des BL
<P>
<FORM name="form_pointage" method=post action="" onsubmit="ecrire(document.forms['form_pointage'].elements['saisie'].value);" enctype="multipart/form-data">
<input id="saisie" type='text' />
<br>
<br>
<p> Numero de Bl Lues :
</div>
<table style="width:40%; position: absolute;top: 15em;border-color : red;left=20%" id="tablist" name="tablist" border='1'>
<tr >
<th style="width:50%">rcvno
</th >
<th style="width:50%">etat
</th>
</tr>
</table>
</FORM>
</body>
</HTML> |
Code:
1 2 3 4 5 6 7 8 9 10 11
| <?php
$fichier="fichier.txt";
$tab=file($fichier);
$ligne=count($tab);
echo $ligne;
for($i=0;$i<$ligne;$i++){
$valeur_tab=str_replace("\n", "", $tab[$i]);
echo '<script>go('.$valeur_tab.')</script>';
}
?> |
Merci de me donner un Coup de main la dessus.
Amicalement