missing } after property list

Eléphant du PHP | 130 Messages

04 févr. 2008, 20:34

Bonjour tout le monde !! :D

Bon gros souci avec l'AJAX, une erreur peut être bénine mais que je ne parviens à comprendre.

Mon code JS est comme ceci :

Code : Tout sélectionner

if ( !window.AccountBank ) { var AccountBank = new Object(); } AccountBank.Methods = { url:null, form:null, options: { option:'addNewAccountBank', waitResponse:null, divError:'errorscptebank' }, send:function() { // Debug Mode if ( !this.url || this.url == null ||!this.form || this.form == null && debug == true ) { this.DebugMode.alert('La fonction accountBank() devrait contenir le paramètre "url", "form " et "option"'); } // Si l'option waitResponse est ajoutée en paramètre, on affiche le div de chargement if ( this.options.waitResponse != null ) { this.TooggleWait.visible( this.options.waitResponse ); } // Désactive le formulaire pour éviter plusieurs envois this.EnableForm.visible( form, { enable:false } ); // Envoi les paramètres new Ajax.Request( path + this.url, { method:'post', asynchronous:true, encoding:encode, postBody:Form.serialize( $(this.form) ) + '&option=' + this.options.option, evalScripts:false onSuccess:this._onSuccess, onFailure:this._onFailure } }, _onSuccess:function(t) { this.EnableForm.visible( this.form ); if ( this.options.waitResponse != null ) { this.ToggleWait.visible( this.options.waitResponse ); } if ( t.ResponseText == 'true' ) { StikModBox.Hide(); this.RefreshListAccountBank.refresh( '/Private/PHP/refreshListAccountBank.php' ); } else { $(this.options.divError).innerHTML = t.ResponseText; new Effect.Appear( $(this.options.divError) ); } }, _onFailure:function(t) { this.EnableForm.visible( form ); if ( this.options.waitResponse != null ) { this.ToggleWait( this.options.waitResponse ); } if ( debug == true ) { this.DebugMode.alert('Une erreur est survenue avec la requête AJAX de la fonction accountBank().\nErreur : ' + t.ResponseText); } } };
Et FireBug me revoi l'erreur suivante :

Code : Tout sélectionner

missing } after property list onSuccess:this._onSuccess,\n
Je ne comprend pas pourquoi cette erreur, car normalement avec Ajax.Request() on peut utiliser l'option onSuccess pour appeler une fonction.

Donc si une lumière pouvait venir m'éclairer ça me dépannerai bien et en même ça dépannerais la communauté pour les prochains visiteurs avec cette erreur.

Merki !! :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 févr. 2008, 20:45

en fait, le "onSuccess:this._onSuccess" est la suite de l'erreur.
L'erreur se situe à la ligne précédente où il manque une virgule entre

Code : Tout sélectionner

evalScripts:false onSuccess:this._onSuccess,
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 130 Messages

04 févr. 2008, 21:09

Oh quel c** je suis, j'aurais pu la déceler tout seul :?

Merci beaucoup Zeus !

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

04 févr. 2008, 21:12

y a pas que ça, il reste une erreur de fermeture d'une parenthèse de .Request ici :

Code : Tout sélectionner

// Envoi les paramètres new Ajax.Request( path + this.url, { method:'post', asynchronous:true, encoding:encode, postBody:Form.serialize( $(this.form) ) + '&option=' + this.options.option, evalScripts:false onSuccess:this._onSuccess, onFailure:this._onFailure }
Correction:

Code : Tout sélectionner

// Envoi les paramètres new Ajax.Request( path + this.url, { method:'post', asynchronous:true, encoding:encode, postBody:Form.serialize( $(this.form) ) + '&option=' + this.options.option, evalScripts:false, onSuccess:this._onSuccess, onFailure:this._onFailure } );
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 130 Messages

04 févr. 2008, 21:36

Tu arrives juste à temps, je l'avais pas remarquer ça non plus, j'étais entrain de modifier mon code car j'avais oublié la virgule un peu partout (copier/coller).

Un grand merci les gars ! Tout ça pour 2 erreurs bêtes :(

Bon finalement une dernière erreur persiste, j'appel la méthode dans le formulaire de cette façon :

Code : Tout sélectionner

<a href="javascript:void(0);" onclick="AccountBank.send( 'test.php', 'monformulaire' ); return false" title="Test">Envoyer</a>
L'erreur est la même si je fais

Code : Tout sélectionner

<form action="#" onsubmit="AccountBank.send( 'test.php', 'monformulaire' ); return false"></form>
Il me renvoi cette erreur :

AccountBank.send is not a function !!??


Personne pour m'aider ?