Bonjour,
Je me suis récemment mis aux framework Javascript (Dojo et Proto), notamment pour les requêtes AJAX… La chose semble vraiment indispensable de facilité, mais je n'arrive pas à comprendre certaines choses, et pourtant j'ai passé bien 2h sur Google à comprendre comment ça marche (personne n'exlpiquant clairement, on donne un exemple et basta )…
Bref, assez de bavardage, voilà le script qui est destiné à la zone admin de mon site. J'ai un tableau de tout mes articles, et je voudrais pouvoir en supprimer un par simple click, et que la ligne soit effacées du tableau et que je soit averti que tout s'est bien passé (en placant le retour HTML du script PHP). Ça marchait avec une requête XHR "normale".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function erase(idarticle, titre, cat, sc, rowID) { if(confirm("Supprimer l\'article \""+titre+"\" ?")) { var url = '_AJAX/erase.php'; var params = 'id='+idarticle+'&cat='+cat+'&sc='+sc; var ajax = new Ajax.Request(url, {method: 'post', parameters: params, OnSuccess: ajout}); } }Premièrement, j'ai du mal à comprendre ce que l'on peut mettre après "OnSuccess/OnComplete/etc.". J'ai cru comprendre qu'il n'y a que deux arguments que l'on puisse passer à la function : la réponse et une option (apparemment pour JSON). J'ai aussi cru comprendre qu'on met généralement "transport" mais que je pourrais aussi bien mettre "machin"…
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function ajout(transport) { var data = transport.responseText; var divInfo = $("info"); divInfo.innerHTML = ""; divInfo.innerHTML = data; }
Deuxièmement, l'article est bien effacé, mais aucun message de confirmation n'apparaît, mon script ressemble pourtant en tout point à des scripts vus sur le net et fonctionnant. J'ai essayé plusieurs configurations, mais en vain. Parmi celle-ci j'ai essayer de placer la fonction à l'intérieur de l'objet requête comme ceci, mais toujours rien !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var ajax = new Ajax.Request(url, {method: 'post', parameters: params, OnSuccess: function(transport) { var response = transport.responseText; $('info').innerHTML = response;}});
Merci de m'expliquer plus en détail le fonctionnement de la chose, je perds patience
Partager