[Réglé][JavaScript] Erreur 'Object expected'

Erreur 'Object expected' [Réglé][JavaScript] - HTML/CSS - Programmation

Marsh Posté le 07-07-2008 à 15:49:43    

Bonjour, :)
 
j'ai cherché pdt des heures sur google, et je n'ai pas trouvé alors je me permet de vous demander de l'aide.
Pour apprendre 1 peu l'ajax, j'ai fait un petit formulaire qui recherche dans une base de donnée mysql, voici le code javascript/html :

Code :
  1. <html>
  2. <head>
  3.  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4.  <title>Ajax TMF Stats</title>
  5.  <script type="text/JavaScript">
  6.  function getXhr(){
  7.   var xhr = null
  8.   if(window.XMLHttpRequest) xhr = new XMLHttpRequest();
  9.   else if(window.ActiveXObject){
  10.    try {
  11.     xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  12.     }
  13.    catch (e) {
  14.     xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  15.           }
  16.    }
  17.    else {
  18.       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  19.       xhr = false;
  20.    }
  21.            
  22.   return xhr
  23.   }
  24.  function xhr_send(div_id){
  25.  var xhr = getXhr()
  26.         xhr.onreadystatechange = function(){
  27.                                
  28.                 if(xhr.readyState == 2 || xhr.readyState == 3)               
  29.                 {                                       
  30.                         document.getElementById(div_id).innerHTML = '<img src="load.gif" />';
  31.                 }
  32.                 else if(xhr.readyState == 4 && xhr.status == 200)
  33.                 {
  34.                         document.getElementById(div_id).innerHTML = xhr.responseText;
  35.                 }
  36.         }
  37.  function search(page, ordre, sens) {
  38.    xhr_send(listet);
  39.          var login = document.getElementById("login" ).value;
  40.         
  41.    xhr.open("POST","liste.php?login="+login+"&p="+page+"&ordre="+ordre+,true);
  42.          xhr.send(null);
  43.  }
  44.  function detail(pid) {
  45.          var xhr = getXhr();
  46.          xhr_send(detail);
  47.                         
  48.          xhr.open("POST","liste.php?id="+pid,true);
  49.          xhr.send(null);
  50.  }
  51.  </script>
  52. </head>
  53. <body>
  54. Vérifie si un joeur existe :<br />
  55. <input type="text" id="login" value="Login du joueurs" OnFocus="javascript:this.value=''" OnKeyUp='search("","","" )' /><br /><br />
  56. <div id="test_1" align="left"></div><br />
  57. <div align="center" id="listet"></div><br />
  58. <div align="left" id="detail"></div>
  59. </body>


Dès la première lettre que je tape, j'ai une erreur sur ie, 'Object expected' a la ligne 60 qui correspond au :

Code :
  1. <input type="text" id="login" value="Login du joueurs" OnFocus="javascript:this.value=''" OnKeyUp='search("","","" )' />


 
Quelqu'un pourriat m'aider svp ?  
 
Merci :)


Message édité par dabourn le 08-07-2008 à 08:42:44
Reply

Marsh Posté le 07-07-2008 à 15:49:43   

Reply

Marsh Posté le 07-07-2008 à 16:33:31    

bonjour,
 
sans préjuger du reste :
 
} manque
   à la fin de function xhr_send
+ en trop  drrière +ordre
   xhr.open("POST","liste.php/?login="+login+"&p="+page+"&ordre="+ordre,true);  
xhr devrait être une variable globale à priori tel que tu fais
   or var xhr dans plusieurs fonctions... donc locale
...
peut-être pas tout vu ?
 
mais quand on développe :

•————————•——————————————————————————————————————————————————————————•
|FireFox |regarder la "console d'erreurs"                           |
|        | Outils / Console d'erreurs                               |
|        |                          et mieux, : télécharger FireBug |
•————————•——————————————————————————————————————————————————————————•
|Internet|activer le deboggage : Outils/options Internet/Avancés    |
|Explorer| dans la liste, sous "Navigation" : décocher              |
|        | o Afficher une notification de chaque erreur de script   |
|        | o Désactiver le débogage de Scripts (Internet Explorer)  |
|        |                  et mieux,  : télécharger le Debogger IE |
|        |                  voir aussi : DebugBar et Companion JS   |
•————————•——————————————————————————————————————————————————————————•
|K-Meleon|regarder la "console d'erreurs"                           |
|        | Outils / Console d'erreurs                               |
•————————•——————————————————————————————————————————————————————————•
|Opera   |regarder la "console d'erreurs"                           |
|        | Outils / Avancé / Console d'erreurs                      |
•————————•——————————————————————————————————————————————————————————•
|Safari  |regarder Debug / Show JavaScript Console                  |
|        | ° modifier Fichier Preferences.plist  situé dans le      |
|        | répertoire : Support:\Documents and Settings\utilisateur |
|        |                \Application Data\Apple Computer\Safari\  |
|        |   y ajouter    <key>IncludeDebugMenu</key>               |
|        |                <true/>                                   |
•————————•——————————————————————————————————————————————————————————•
 


 
cordialement.
 
EDIT : j'ai vu aussi que tu gérais en asynchrone et que tu n'attendais pas
la réponse avec ajax [  xhr.open("POST","liste.php?login="+login+"&p="+page+"&ordre="+ordre+,true); ]
utilises onreadystate ou met en synchrone
 
et entre nous, je ne sais pas si bien de faire appel au  
serveur à chaque touche pressée.


Message édité par bul3 le 07-07-2008 à 16:52:58

---------------
[mon site] [m'écrire]
Reply

Marsh Posté le 07-07-2008 à 17:10:14    

excuse, moi je n'ai pas trop compris ta première partie de réponse, sinon merci pour le débugger firefox :)
 
pour l'asynchrone mais la réponse je la gère avec la fonction xhr_send que j'ai crée
 
mais pour le mettre en global comment je fais ? global xhr ? Merci :)

Reply

Marsh Posté le 08-07-2008 à 05:31:48    


>>pas compris le début ?
° il te manque une } dans la fonction
   compte les { et les }, non équilibrés.
° un + derrière ordre en trop
   xhr.open("POST","liste.php?login="+login+"&p="+page+"&ordre="+ordre+,true);  
°  en n'assurant pas qu'il n'y a pas d'autres choses
 
>>je la gère avec la fonction xhr_send  
j'avais pas vu... mais tu l'appelles plusieurs fois ?
 
>>pour le mettre en global comment je fais  
var xhr;     en dehors de toute function,
et dans les function enlever ler var.
 
 
je disais aussi que ce n'était pas sûr que ce soit une bonne idée
d'appeler le seveur à chque fois qu'on appuie sur une touche.
et tu as pensé : 2 utlisateurs , le 1er s'appele 'JEAN', le 2ème 'JEAN3' ?
 
Cordialement.


---------------
[mon site] [m'écrire]
Reply

Marsh Posté le 08-07-2008 à 08:42:00    

Alors merci beaucoups pour ton aide, hier soir j'ai pas eu le temps de répondre, j'ai réussi à faire marcher mon script, en effet l'accolade manquait., en fait ie m'indiquait une mauvaise erreur, donc je cherchais une mauvaise erreur.
 
Sinon, pour le onkeyup, c'est un truc perso c'était pour un test, donc je m'enfous du nombre de requetes.
 
merci beaucoups pour le débuggage avec firefox , il est top je trouve, bcps mieux qu'ie !


Message édité par dabourn le 08-07-2008 à 08:42:25
Reply

Sujets relatifs:

Leave a Replay

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