Javascript inopérant quand requête ajax
Bonjour,
j'ai créé un script pour effacer une ligne de mon tableau quand je clique sur un lien. Une partie en javascript ( via jquery) efface la ligne dans le navigateur et la requête ajax l'efface de la BDD.
Quand je teste avec la requête javascript/jquery seule ça efface bien la ligne dans le navigateur. Mais quand j'ajoute la requête AJAX pour l'effacer dans la BBD aussi, la ligne ne s'efface plus ( mais elle supprimé de la BDD) ( sous firefox et chrome idem. C'est mon premier script ajax / javascript, j'ai du faire une erreur toute bête. voici le script
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function deleteMe(row_id, tableid) {
if (!confirm('Supprime ' + row_id + ' de ' + tableid + ' ?')) {
ev.preventDefault();
return false;
} else {
$('#' + tableid + ' #my_row_' + row_id).remove();
var dileteobject = null;
dileteobject = new XMLHttpRequest();
dileteobject.open("GET", "action.php?row_id=" + row_id + "&tableid=" + tableid, false);
dileteobject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
dileteobject.send(null);
if (dileteobject.readyState == 4) {
alert("effacé de la table");
}
}
} |
Note : on envoie un row_id aka le numéro de la ligne et tableid aka le nom du tableau
Merci à ceux qui auraient un conseil
ça marche sans que je comprenne pourquoi
Merci des réponses. J'ai essayé ce que proposait sekaijin
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function deleteMe(row_id, tableid) {
if (!confirm('Supprime ' + row_id + ' de ' + tableid + ' ?')) {
ev.preventDefault();
return false;
} else {
$.ajax({
type: "GET",
url: "action.php",
data: {
row_id: row_id,
tableid: tableid
},
success: function (data, textStatus, jqXHR) {
$('#' + jqXHR.data.tableid + ' #my_row_' + jqXHR.data.row_id).remove();
},
dataType: "json"
});
}
} |
Je l'ai peut être mal intégré mais je débute avec ajax et jquery donc ça me semblait logique. Cela efface bien la ligne de la database mais pas sur la page.
Maintenant cette version marche (efface de la BDD et sur la page) sans que je comprenne pourquoi car elle est quasi identique à la première
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function deleteMe(row_id, tableid) {
if (!confirm('Supprime ' + row_id + ' de ' + tableid + ' ?')) {
ev.preventDefault();
return false;
} else {
$('#' + tableid + ' #my_row_' + row_id).remove();
var dileteobject = null;
dileteobject = new XMLHttpRequest();
dileteobject.open("GET", "action.php?row_id=" + row_id + "&tableid=" + tableid, false);
dileteobject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
dileteobject.send();
if (dileteobject.status == 200 && dileteobject.readyState == 4) {
alert("effacé de la table" + dileteobject.readyState + " " + dileteobject.status);
}
}
} |
Le problème ne vient-il pas d'ailleurs ?? de cache ou autre qu'il faudrait vidé dans le navigateur par exemple. Le genre de truc que tout le monde sait mais que le débutant ne connait pas...
Merci encore des commentaires qui m'ont permis d'aller explorer des trucs que je ne connaissais pas.