[AJAX] ReadyState bloqué sur 1
Bonjour tout le monde,
Je galère avec une petite requête ajax toute simple, le state avance jusqu'a 1 et pas plus :-(
Pourtant avec firebug je vois bien une réponse avec la bonne valeur. et quand je met un error_log dans mon php sur le bout de code en question il n'y a aucun problème.
la méthode qui fait l'appel ajax:
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
| function MajPoste(code){
ID = document.Identification.ID.value;
xhr = getXhr();
console.log('readyState 0 : ' + xhr.readyState);
xhr.open("POST", "ajaxFonction.php", true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.setRequestHeader("Cache-Control","no-cache");
xhr.send("case=getIndicPoste&COD="+code+"&ID="+ID);
console.log('readyState : ' + xhr.readyState);
xhr.onreadystatechange = function(){
console.log('readyState in : ' + xhr.readyState);
if(xhr.readyState == 4 && xhr.status == 200){
result = xhr.responseText;
alert('resultat : '+result);
if(result == '0'){
document.getElementById('TDDoublonPoste').innerHTML = "";
}else if(result == '1') {
document.getElementById('TDDoublonPoste').innerHTML = "<a onclick='ListeAffAvecPosteSource(\"p\")' style='cursor:pointer'>1 autre poste</a>";
}else{
document.getElementById('TDDoublonPoste').innerHTML = "<a onclick='ListeAffAvecPoste(\"p\")' style='cursor:pointer'>"+result+" autres poste source</a>";
}
document.Identification.modif.value=true;
}
};
} |
le code html (avec smarty)
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
| <td>Code Poste source :</td>
<td colspan="2" class="gefip" >
{if $COD_EDIT}
<span id="DivPosteSource">
<select name="PS_COD" id="PS_COD" style="width:320;" onclick="showModalDialog('liste_poste_source.php?COD='+document.Identification.COD.value,window,'dialogWidth:660px;dialogHeight:400px;scrollbars:yes;resize:yes');"">
{if $COD}
<option value="{$COD}">{$LIB} ({$COD})</option>
{else}
<option value="-1">Choisissez un poste</option>
{/if}
</select>
</span>
{else}
{$PS_LIB}<input name="COD" type="hidden" value="{$COD}">
{/if}
<div id="TDDoublonPoste" style="display:inline">
{if $FLAG_POSTE != "0" && !empty($FLAG_POSTE_SOURCE) }
{if $FLAG_POSTE_SOURCE == 1}
<a >1 autre affaire est sur ce poste source</a>
{else}
<a >{$FLAG_POSTE} autres affaires sont sur ce poste source</a>
{/if}
{/if}
</div>
</td> |
et le php appelé dans ajaxFonction
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| $COD = $_POST['COD'];
$ID = $_POST['ID'];
if (!empty($COD)){
//recuperation du nombre de poste
$sql = "select count(distinct(id)) as NB from affaire where cod = '$COD'";
$result = $db->query($sql);error_log($sql);
$row = $result->fetchRow(DB_FETCHMODE_OBJECT);
echo $row->NB;
} else {
echo '0';
} |
je ne vois vraiment pas ce qui cloche... si quelqu'un a une idée je suis preneur.
Merci d'avance
EDIT :
J'ai bien vu ce post http://www.developpez.net/forums/d85...us-bloque-1-a/ qui parle de problème avec la fonction send mais je ne pense pas que cela soit mon cas.