Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/01/2013, 22h58   #1
fab56
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 167
Détails du profil
Informations personnelles :
Âge : 21

Informations forums :
Inscription : février 2005
Messages : 167
Points : 28
Points : 28
Envoyer un message via AIM à fab56 Envoyer un message via MSN à fab56
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
fab56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2013, 00h33   #2
danielhagnoul
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 848
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 62
Localisation : Belgique

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

Informations forums :
Inscription : février 2009
Messages : 3 848
Points : 14 346
Points : 14 346
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 );
	});
});
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

plugin dialogModal

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2013, 09h36   #3
SpaceFrog
Rédacteur/Modérateur

 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 32 861
Détails du profil
Informations personnelles :
Sexe : Homme
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 : 32 861
Points : 51 458
Points : 51 458
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.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
Humour
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2013, 09h37   #4
fab56
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 167
Détails du profil
Informations personnelles :
Âge : 21

Informations forums :
Inscription : février 2005
Messages : 167
Points : 28
Points : 28
Envoyer un message via AIM à fab56 Envoyer un message via MSN à fab56
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.
fab56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2013, 09h42   #5
SpaceFrog
Rédacteur/Modérateur

 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 32 861
Détails du profil
Informations personnelles :
Sexe : Homme
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 : 32 861
Points : 51 458
Points : 51 458
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.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
Humour
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h41.


 
 
 
 
Partenaires

Hébergement Web