Probleme ajax/javascript

Probleme ajax/javascript - HTML/CSS - Programmation

Marsh Posté le 30-11-2009 à 16:54:13    

Bonjours,
 
 
Débutant en ajax et pas encor super à l’aise avec le javascript,  j’ai un petit souci avec un bout de code qui a voir n’as pas trop envie de coopérer.
 
Voici le bou de code:
 
 

Code :
  1. function verifDispo(champId)
  2. {
  3. DoChange = Initxhr();
  4. var NomChamps = document.getElementById(champId).value;
  5. var chType = '10'
  6. var params =  'type=' + chType +
  7.     '&NomChamps=' + NomChamps;
  8. DoChange.open('POST','../lib/sql_fonction.php', true);
  9. DoChange.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  10. DoChange.send(params);
  11. DoChange.onreadystatechange = afficheDispo();
  12. }
  13. function afficheDispo()
  14. alert('test');
  15.     if(DoChange.readyState == 4)
  16. {
  17.  var string = DoChange.responseText;
  18.  alert(string);
  19. }


 
Ce code sert à vérifier si une entrée dans la table sql existe déjà ou pas.
 
Le code fonctionne uniquement si je déclare  une première alert (test) avant la condition, comme si elle ‘ralentissait’ le script pour que la condition do.change.readyState puisse s’exécuter…
La je m’avoue vaincu…si quelqu’un aurai une idée d’où peux provenir ce problème…
 
Merci d’avance.

Reply

Marsh Posté le 30-11-2009 à 16:54:13   

Reply

Marsh Posté le 30-11-2009 à 16:59:15    

je suis pas un pro d'Ajax, mais il ne faudrait pas que ta fonction afficheDispo soit dans verifDispo? pour ne pas perdre la référence à DoChange?
 
ou alors faire directement:

Code :
  1. DoChange.onreadystatechange = function ()
  2. {
  3.  alert('test');
  4.  if(DoChange.readyState == 4)
  5.  {
  6.    var string = DoChange.responseText;
  7.    alert(string);
  8.  }
  9. }


Message édité par pataluc le 30-11-2009 à 16:59:31
Reply

Marsh Posté le 30-11-2009 à 17:03:46    

ou alors, je me demande si tu n'es pas obligé de mettre le DoChange.onreadystatechange = ... avant le DoChange.open( ...??

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed