Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2927 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Ajax de débutant] : problème avec l'attribut status ?!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Ajax de débutant] : problème avec l'attribut status ?!

n°1435290
Docteur_Cu​be
Posté le 01-09-2006 à 17:19:42  profilanswer
 

Salut,  
 
Je programme en PHP depuis longtemps. Je connais aussi à peu près Javascript. Je suis assez interessé par Ajax, ou plutôt Aja (sans le x de xml pour le moment).  
Cela fait donc depuis hier que je me documente, et cela fait quelques heures que j'essaie de réaliser mon premier script.  
 
Voici le truc que j'ai envie de réaliser pour tester Ajax :  
 
J'ai un formulaire avec un champs texte et un bouton submit :  

<FORM method="POST" name="ajax" action="">
<input type="text" name="nom" size="25" />
<input type="submit" onclick="traitementJS()" value="Envoie-moi ton nom !" />
<br /><br />
<div id="utilisateur">
Ce texte changera !  
</div>
</FORM>


 
Ce formulaire demande un texte, et lance la fonction traitementJS quand on clique sur le bouton.  
Le but avoué de cette fonction traitementJS est de récupérer la donnée du champs texte, de l'envoyer à une page PHP par la méthode post grace à xmlhttprequest, de récupérer un résultat, et de l'afficher dans le div "utilisateur".  
 
je pensais que c'était un exemple assez simple pour moi.. Et bien je me suis trompé ! Je bloque lamentablement... Aucun site cherché sur Google, ou aucun sujet cherché sur ce forum n'a pu m'aider...  
 
Voici donc la suite de mon programme :  
 
Le fichier Javascript et ses deux fonctions :  

function getXhr()
{
 var xhr = null;
 if(window.XMLHttpRequest) // Firefox et autres
  {
   xhr = new XMLHttpRequest();  
   //xhr.overrideMimeType('text/xml');
  }
 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;  
  }  
 return xhr;  
}


function traitementJS()
{
 xhr=getXhr();
 // On défini ce qu'on va faire quand on aura la réponse :  
 xhr.onreadystatechange = function()  
 {
  // On ne fait quelque chose que si on a tout reçu et que le serveur est ok  
  alert("prout" ); // C'est juste pour voir le détail.  
  document.getElementById('utilisateur').innerHTML = "Chargement... readyState:"+xhr.readyState;
  if(xhr.readyState == 4)
   {
    if(xhr.status == 200) // C'est là que ça merde...  
     {
      alert(xhr.responseText);  
      document.getElementById('utilisateur').innerHTML = xhr.responseText;
     }
    else alert("erreur de status" );  
   }
 }
 
 xhr.open("POST","traitementPHP.php",true);
 // On est en POST :  
 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 // Argument :  
 var name=document.ajax.nom.value;  
 xhr.send("name="+name);  
}


 
 
Et enfin voici un fichier php quelconque qui sert à prouver qu'on a bien traité des données :  
TraitementPHP.php :  

<?php
 echo "<br>Message de PHP : <br><b>";
 if(isset($_POST["name"]))
  {
   echo "Bonour ".$_POST["name"].". Je vous souhaite la bienvenue sur le site !<br>";
   if($_POST["name"] == "Dr_cube" ) echo "Salut le Doc !";  
  }
 echo "</b>";
?>


 
 
 
 
Mon problème se situe visiblement dans la fonction Javascript traitementJS : le xhr.status est inconnu, et donc il n'entre jamais dans le if, et ne fais jamais ce qu'il y a à faire.. Il m'est même impossible d'afficher xhr.status dans un alert... Dès qu'il y a l'expression xhr.status, tout s'arrête.  
Dans la console Javascript de Firefox, voici l'erreur que j'ai au moment de rencontrer xhr.status :  
 

Erreur : [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: http://[......]/ajax.js :: anonymous :: line 106"  data: no]
Fichier source : http://[.......]/ajax.js
Ligne : 106


 
Je ne comprend pas cette erreur... Pour faire ce script, je me suis inspiré entre autre de cette page :  
http://siddh.developpez.com/articles/ajax/
 
 
Merci beaucoup pour votre aide ! Ca fait des heures que je cherche sans trouver mon erreur.. Je suis sûr que pour quelqu'un d'expérimenté dans le domaine, il ne faudra que quelques instants pour trouver mon erreur...  
Pour info je fais ce programme sur mon Mac, et donc je n'ai testé que sous Firefox et Safari.  
Firefox n'entre pas dans le else du status. Safari affiche l'alert qui est dans le else.


Message édité par Docteur_Cube le 01-09-2006 à 17:46:28

---------------
Dr_cube.
mood
Publicité
Posté le 01-09-2006 à 17:19:42  profilanswer
 

n°1435310
Docteur_Cu​be
Posté le 01-09-2006 à 18:00:12  profilanswer
 

RAAAAH j'en ai marre.. J'ai beau chercher, et torturer mes fonctions dans tous les sens, je n'arrive à rien... J'implore votre aide !


---------------
Dr_cube.
n°1435515
Docteur_Cu​be
Posté le 02-09-2006 à 10:32:36  profilanswer
 

Hum, permettez-moi de remonter légèrement ce topic..  
J'ai essayé quelques changements, notamment de tout rassembler dans une seule fonction JS, mais visiblement, ça ne marche pas mieux.. S'il vous plait, aidez-moi, je craque là.. Il doit y avoir un truc que je n'ai pas compris..  
 
Merci !

n°1435845
Docteur_Cu​be
Posté le 03-09-2006 à 11:32:50  profilanswer
 

Bon, je re-monte une dernière fois mon sujet... Je n'ai toujours trouvé la solution, et je vois que personne ne connait la réponse sur ce forum..

n°1436847
ghohm
Posté le 05-09-2006 à 15:27:00  profilanswer
 

Salut,
 
je sais pas si ça peut t'aider ... mais bon !  :D
 
http://www.toutjavascript.com/savo [...] quest.php3
 
 :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Ajax de débutant] : problème avec l'attribut status ?!

 

Sujets relatifs
[HTML] Problème de retour au menuProblème avec un update en php/mysql
Problème avec les listes en CSS ...[Delphi] problème MDI + Base de données + ListBox [Résolu]
[MySQL] Probléme sur requete pas simple !problème avec une SELECT BOX
Problème de date en vba-access 2000Oracle : problème requête ! MERGE INTO [RESOL] 2 bugs Oracle de fou
Probleme avec les sons et ACTIVEXPerl, XML et problème accent
Plus de sujets relatifs à : [Ajax de débutant] : problème avec l'attribut status ?!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR