IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

[AJAX] Récupérer la réponse / Lancer une fonction [Prototype]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 333
    Par défaut [AJAX] Récupérer la réponse / Lancer une fonction
    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});
    		}
    	}
    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;
    	}
    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"…

    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

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    OnSuccess
    Attention, c'est onSuccess et JavaScript (donc Prototype aussi !) est plutôt chatouilleux avec la casse !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var ajax = new Ajax.Request(url, {
        method: 'post',
        parameters: params,
        onSuccess: function(transport) {
            var response = transport.responseText;
            $('info').innerHTML = response;
        }
    });
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 333
    Par défaut
    Qu'est-ce que je me hais pour des broutilles comme ça Merci beaucoup !


    Mes autres questions restent toutefois valables toutefois, nottament pour effacer la ligne corresopnd à l'article supprimer. Je ne vois pas comment je peut passer l'id de ce dernier :p

  4. #4
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Tu ne construis pas les parametres comme il faut : il faut faire comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var params = {
      id : idarticle,
      cat : cat,
      sc : sc
    }

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 333
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    Tu ne construis pas les parametres comme il faut : il faut faire comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var params = {
      id : idarticle,
      cat : cat,
      sc : sc
    }
    Les deux syntaxes semblent fonctionner, quel est l'intérêt de l'écrire ainsi ?

  6. #6
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Effectivement, j'ai relu la doc les 2 passent.
    http://prototypejs.org/api/ajax/options
    L'avantage (à mon sens) c'est que c'est plus lisible et plus facile à maintenir ... mais ce n'est que mon avis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2015, 12h17
  2. Réponses: 2
    Dernier message: 10/10/2011, 01h41
  3. Réponses: 5
    Dernier message: 18/11/2009, 17h17
  4. [AJAX] [XAJAX] Lancer une fonction JS dans une fonction AJAX
    Par sixieme-sens dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/12/2008, 15h26
  5. Comment lancer une fonction
    Par Elois dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/04/2004, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo