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

jQuery Discussion :

propager une variable dans .getJSON()


Sujet :

jQuery

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Points : 63
    Points
    63
    Par défaut propager une variable dans .getJSON()
    Bonsoir,

    Je voudrais qu'à chaque clique sur un certain type de lien, une requete AJAX soit envoyé à une page.

    Voici mes liens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href='#' rel='suppr-item' id='1'>Suppr. enregistrement n°1</a>
    <a href='#' rel='suppr-item' id='2'>Suppr. enregistrement n°2</a>
    <a href='#' rel='suppr-item' id='3'>Suppr. enregistrement n°3</a>
    L'attribue 'id' du lien correspond à un enregistrement que ce lien est censé supprimer. Je dois donc envoyé l'id à une page php qui s'occupera de supprimer le bon enregistrement dans la bdd.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $('body').delegate("a[rel=mission-suppr]", "click", function(e){
    	var id = $(this).id; // <-- récupère l'id du lien cliqué
    		$.getJSON("index.php?module=planning&action=ajax.delete.mission",
    			{"mid": id //<-- je tente de l'envoyer à ma page via json
    			},  
    			function(data){}
    		);	
    	});
    seulement ça ne marche pas. en testant, id vaut "undefined" dans la fonction .getJSON()

    comment faire pour que la variable soit propagée dans la fonction .getJSON() pour que je puisse l'envoyer à ma page ?

    merci d'avance.

    bonne soirée

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Un ID doit être unique et pour être compatible avec HTML 4 il doit commencer avec une lettre. Utiliser l'attribut "data-x" plutôt que "rel" pour être compatible avec HTML 4 et 5.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="#" data-action="supprItem" id="a1">Suppr. enregistrement n°1</a>
    <a href="#" data-action="supprItem" id="a2">Suppr. enregistrement n°2</a>
    <a href="#" data-action="supprItem" id="a3">Suppr. enregistrement n°3</a>
    Pour jQuery 1.7.2 et plus, on doit utiliser on() au lieu de delegate().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    $( "body" ).on( "click", "a[data-action='supprItem']", function( event ){
     
    	var jqXHR = $.getJSON( "fichier.php", { 
    		"id" : this.id.replace( "a", "" )
    	} );
     
    	jqXHR.done( function( data, textStatus, jqXHR ){
    		// succès de la transaction, on doit traiter le contenu de data
    		console.log( data, textStatus, jqXHR );
     
    	});
     
    	jqXHR.fail( function( jqXHR, textStatus, errorThrown ){
    		// échec de la transaction, gérer la catastrophe
    		console.log( jqXHR, textStatus, errorThrown );
     
    	});
     
    	jqXHR.always( function( jqXHR, textStatus ){
    		// la transaction est terminée
    		console.log( jqXHR, textStatus );
    	});
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    un id ne doit pas non plus être uniquement numérique pour HTML4 ni commencer par du numérique
    autant mettre un data non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <a href="#" data-action="supprItem" id="a1" data-valeur="1">Suppr. enregistrement n°1</a>
     
    var tosend = $(this).data('valeur'); // <-- récupère l'id du lien cliqué
    		$.getJSON("index.php?module=planning&action=ajax.delete.mission",
    			{"mid": tosend //<-- je tente de l'envoyer à ma page via json
    			},
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Tout d'abord, merci pour cette reponse très rapide. Je n'ai pas encore testé je vois ça dès que je peux.

    Par contre je comprends pas cette instruction : pourquoi supprimer les "a" dans l'id ?
    Et ici, que représente 'this' ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "id" : this.id.replace( "a", "" );
    Encore merci.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Nos posts ont du se croiser ^^

    Daniel propose fort justement de modifier les id en ajoutant un préfixe alphabetique.

    a1 ... ainsi pour récupérer ta valeur numérique tu sois supprimer le a en début d'id, ce que Daniel fait avec cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "id" : this.id.replace( "a", "" );
    remplace le a dans l'id par rien ...

    ma version te propose de t'affranchir de cette manip car ta valeur numérique est stockée en data directement en numérique.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Pl/SQL utilisation d'une variable dans un select
    Par larg dans le forum PL/SQL
    Réponses: 17
    Dernier message: 30/11/2004, 17h08
  2. Comment completer une variable dans une PROC
    Par Le Basque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/09/2004, 17h18
  3. [langage] trouver une variable dans une autre
    Par BEAUJAULT dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2004, 15h04
  4. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40
  5. Réponses: 13
    Dernier message: 14/06/2003, 22h15

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