J’utilise jQuery pour publier un champ de formulaire dans un fichier PHP renvoyant simplement 1/0, selon que cela fonctionne ou non
Extrait du code:
$.ajax({ url: "ajax/save_text.php", //Relative?!? //PHP Script type: "POST", //Use post data: 'test=' + $(this).val(), datatype: 'text', //Pass value cache: false, //Do not cache the page success: function(html) { if (html == 1) { $(this).hide().siblings('span').html($(this).value).show(); alert("awesome!"); } else alert('It didn\'t work!'); }, //Error error: function() { alert("Another type of error"); } });
Cependant, chaque fois que l’opération réussit (html == 1), la console génère l’erreur “Uncaught TypeError: impossible de lire la propriété ‘defaultView’ of undefined” et l’alerte ne se produit jamais …?
Google ne semble pas avoir beaucoup d’informations sur cette erreur et jQuery, qui sait la cause?
C’est parce que this
n’est pas ce que vous aviez à faire auparavant, c’est maintenant l’object ajax
jQuery, ajoutez l’ option de context
de $.ajax()
comme ceci:
$.ajax({ context: this, url: "ajax/save_text.php", ...
this
dans vos rappels, cela correspond au même que lorsque vous appelez $.ajax()
. Sinon, conservez simplement une référence à this
variable dans une variable distincte.
En outre, vous devrez ajuster $(this).value
, vous vouliez probablement dire this.value
ou $(this).val()
.