Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Nouveau Membre du Club
    Inscrit en
    février 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 22

    Informations forums :
    Inscription : février 2005
    Messages : 170
    Points : 28
    Points
    28

    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 :
    1
    2
    3
    <a href='#' rel='suppr-item' id='1'>Suppr. enregistrement1</a>
    <a href='#' rel='suppr-item' id='2'>Suppr. enregistrement2</a>
    <a href='#' rel='suppr-item' id='3'>Suppr. enregistrement3</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 :
    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 Daniel Hagnoul
    Étudiant perpétuel
    Inscrit en
    février 2009
    Messages
    4 440
    Détails du profil
    Informations personnelles :
    Nom : Homme Daniel Hagnoul
    Âge : 63
    Localisation : Belgique

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

    Informations forums :
    Inscription : février 2009
    Messages : 4 440
    Points : 17 745
    Points
    17 745

    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 :
    1
    2
    3
    <a href="#" data-action="supprItem" id="a1">Suppr. enregistrement1</a>
    <a href="#" data-action="supprItem" id="a2">Suppr. enregistrement2</a>
    <a href="#" data-action="supprItem" id="a3">Suppr. enregistrement3</a>
    Pour jQuery 1.7.2 et plus, on doit utiliser on() au lieu de delegate().

    Code :
    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 );
    	});
    });

    Propositions de Q/R pour la FAQ jQuery

    plugin dialogModal

    Si un message vous a aidé ou vous semble pertinent, votez pour lui !

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
    Inscrit en
    mars 2002
    Messages
    34 525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : mars 2002
    Messages : 34 525
    Points : 56 451
    Points
    56 451

    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 :
    1
    2
    3
    4
    5
    6
    7
     
    <a href="#" data-action="supprItem" id="a1" data-valeur="1">Suppr. enregistrement1</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


    réalisations :www.oxygen-translations.com|www.saftair.com| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  4. #4
    Nouveau Membre du Club
    Inscrit en
    février 2005
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 22

    Informations forums :
    Inscription : février 2005
    Messages : 170
    Points : 28
    Points
    28

    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 :
    "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 - Analyste Programmeur
    Inscrit en
    mars 2002
    Messages
    34 525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : mars 2002
    Messages : 34 525
    Points : 56 451
    Points
    56 451

    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 :
    "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


    réalisations :www.oxygen-translations.com|www.saftair.com| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •