Page 1 sur 1

missing } after property list

Posté : 04 févr. 2008, 20:34
par logikstik
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

Posté : 04 févr. 2008, 20:45
par zeus
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,

Posté : 04 févr. 2008, 21:09
par logikstik
Oh quel c** je suis, j'aurais pu la déceler tout seul :?

Merci beaucoup Zeus !

Posté : 04 févr. 2008, 21:12
par sadeq
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 } );

Posté : 04 févr. 2008, 21:36
par logikstik
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 ?