Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2012, 16h24   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
Par défaut jQuery.post tableau

Bonjour,

mon but étant d'envoyer au serveur seulement les boutons radio qui ont changé de valeur pour ne traiter que ceux la.
Des que la personne clic sur un bouton radio, je stocke dans une variable data l'id et la valeur.
Le probleme vient quand je souhaite envoyer via la méthode jQuery.post, j'ai d'abord essayer avec cette ligne
Code :
 jQuery.post(url, $("header").data,function(data){}, "json");
cela n'a pas marché. Alors j'ai voulu faire un test simple
Code :
jQuery.post(url, {test:"resr"},function(data){}, "json");
mais cela ne fonctionne pas non plus quand je fait un j'ai lu que le faite de tourner sous ie6 ne posé pas de problème, je ne vois pas d'où vient le problème, merci d'avance et bonne journée.

Code Html
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<script src="../../../objets/jquery/jquery.js" type="text/javascript"></script>
<script src="js/test.js" type="text/javascript"></script>
</head>
<body>
 
<form name='form_saisie' method='post' action='inc/traitement_saisie_siege_new.php' id="submit">
<div align=right><input type='button' value='Retour Menu'
	class='perso_bouton_input' onClick="window.location.href='menu.php';" />
<input type='button' id='btn_valid' value='Valider'
	class='perso_bouton_input' onClick="valider();" /> <img
	src='inc/icon_exel.gif' onClick="window.location.href='xls_saisie.php'" />
<br>
 
<DIV id='header' class='tabloScroll_liste'
	style='width: 100%; height: 295px; position: relative;'>
<table border='0' align='center' cellspacing='1' cellpadding='0'
	bordercolor='#000000' bgcolor='#000000' id='tab_saisie' width='95%'>
			<!--		// affichage d'une ligne avec les données du partenaire-->
	<tr id='9773'>
		<td class='tab_cell' width='21%'>....</td>
		<td class='tab_cell' width='8%'><SPAN STYLE='font-size: 11px'>....</span></td>
		<td class='tab_cell' width='9%'>...</td>
		<td class='tab_cell' width='7%'>...</td>
		<td class='tab_cell' width='7%'><b>...</b></td>
		<td class='tab_cell' width='9%'>...</td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='rad_saisie' value='crea' id='crea_9773'
			disabled  onClick="check_autre_motif('crea_',9773);" />
		</td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='9773' value='forf' 
			id='9773' width='2%'
			onClick="check_autre_motif('forf_',9773);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='9773' value='micro' id='9773' width='2%'
			onClick="check_autre_motif('micro_',9773);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='9773' value='wait' 
			id='9773' width='2%'
			onClick="check_autre_motif('wait_',9773);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='9773' value='ana'	
			id='9773' width='2%'
			onClick="check_autre_motif('ana_',9773);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='9773' value='sana' 
			id='9773' width='2%'
			onClick="check_autre_motif('sana_',9773);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='9773' value='ssap' 
			id='9773' width='2%'
			onClick="check_autre_motif('ssap_',9773);check_siret_saphyre();" /></td>
			<!-- name='rad_saisie_2' -->
		<td class='tab_cell' width='8%'>
			<input type='text' name='9773' id='9773' width='8%'	value='' size='8' />
		</td>
		<td class='tab_cell'>
		<div id='atmotif'><img id='img_9773'
			src='../../../objets/images/selection_ko.gif'
			onClick='popup(9773,0);' /></div>
		</td>
		<td class='tab_cell' width='3%'>...</td>
				<td class='tab_cell' width='3%'><img
			id='img_drop_9773' src='inc/b_drop.png'
			onClick='dropline(9773)'></td>
	</tr>
	<tr id='3298'>
		<td class='tab_cell' width='21%'>...</td>
		<td class='tab_cell' width='8%'><SPAN STYLE='font-size: 11px'>...</span></td>
		<td class='tab_cell' width='9%'>...</td>
		<td class='tab_cell' width='7%'>...</td>
		<td class='tab_cell' width='7%'><b>...</b></td>
		<td class='tab_cell' width='9%'>...</td>
		<td class='tab_cell' width='3%'><input type='radio'	name='rad_saisie' value='crea'
			id='crea_3298'
			disabled  onClick="check_autre_motif('crea_',3298);" />
		</td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='3298' value='forf'
			id='3298' width='2%'
			onClick="check_autre_motif('forf_',3298);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='3298' value='micro'
			id='3298' width='2%'
			onClick="check_autre_motif('micro_',3298);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='3298' value='wait'
			id='3298' width='2%'
			onClick="check_autre_motif('wait_',3298);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='3298' value='ana'
			id='3298' width='2%'
			onClick="check_autre_motif('ana_',3298);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='3298' value='sana'
			id='3298' width='2%'
			onClick="check_autre_motif('sana_',3298);" /></td>
		<td class='tab_cell' width='3%'><input type='radio'
			name='3298' value='ssap'
			id='3298' width='2%'
			onClick="check_autre_motif('ssap_',3298);check_siret_saphyre();" /></td>
			<!-- name='rad_saisie_2' -->
		<td class='tab_cell' width='8%'><input type='text'
			name='3298' id='3298' width='8%' value='' size='8' /></td>
		<td class='tab_cell'>
		<div id='atmotif'><img id='img_3298' src='../../../objets/images/selection_ko.gif'
			onClick='popup(3298,0);' /></div>
		</td>
		<td class='tab_cell' width='3%'>...</td>
				<td class='tab_cell' width='3%'><img
			id='img_drop_3298' src='inc/b_drop.png'
			onClick='dropline(3298)'></td>
	</tr>
	</table>
<input type='hidden' name='test' id='test'/>
<br>
<br>
<div align=right><input type="button" value="Retour Menu"
	class="perso_bouton_input" onClick="window.location.href='menu.php';" />
<input type="submit" value="submit"/>
</form>
 
</body>
</html>
Code jQuery
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$(function() {
	$('input:radio').change(function(){
		var agc =  $(this).val();
		var agc_key = $(this).attr("id");
 
		/*$.each($("#header").data(), function(key, value) {
	    	alert(key + "=" + value);
		});	
		 */
		$("#header").data(agc_key, agc);
	});
 
	$("#submit").submit(function(){
		var url = $(this).attr("action");
 
		jQuery.post(url, $("header").data,function(data){}, "json");
		//jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
	});
});
toshTosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 16h54   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 786
Points : 35 786
Citation:
je ne vois pas d'où vient le problème
Probablement du fait que tu mélanges les notations...

Citation:
Code :
jQuery.post(url, $("header").data,function(data){}, "json");
...
Code :
$("#header").data(agc_key, agc);
$("header") et $("#header"), c'est loin d'être pareil !
D'autre part

Il faut préciser la valeur de l'objet data que tu veux récupérer.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 09h32   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
Ah vui , le "#" change complétement les choses, pour le data, je vois vraiment pas comment lui passer en paramètre, il faudrait que je place les données dans un tableau pour le passer dans la méthode ?

Je commence le jQuery seulement depuis hier, et pas mal de chose m'échape un peu, notamment sur un exemple d'un formulaire d'authentification, qui à deux inputs, un pour le login et l'autre pour le mot de passe.
Quand je fait la méthode
Code :
jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
la variable data doit elle contenir obligatoirement les deux valeurs des inputs ou peut on envoyer seulement le login dans la méthode ? Et dans ce cas le mot de passe est il envoyé quand même ?
En espérant être relativement clair.
toshTosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 11h20   #4
Invité de passage
 
Inscription : novembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 13
Points : 2
Points : 2
Finalement j'ai trouvé une solution à mon problème, le false déja faisaitpartie du problème, le faite de ne pas mettre de return false fait que le formulaire est envoyer en méthode classique (enfin je pense). Aprés pour envoyer mon tableau, j'ai changé deux trois chose.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$(function(){
	var items = [];
	$('input:radio').click(function(){
		var agc =  $(this).val();
		var agc_key = $(this).attr("name");
		//items[agc_key]=agc;
		items.push(agc);
	});
 
	$("#submit").submit(function(){
		url = $(this).attr("action");
		req = {'tab[]' : items};
        $.ajax({
           type: "POST",
           url: url,
           data: req ,
           success: function(data){
		alert(data);
           }
         });	
	return false;
	});
});
A chaque click sur un bouton radio j'enregistre dans un tableau la valeur de l'input, l'attr name correspond à l'id, Puis quand je submit je convertie mon tableau et l'envoie.
Par contre j'ai essaye avec un tableau associatif mais cela n'a pas marché, si une personne voie pourquoi.
Le site qui m'a permis de trouver.
http://www.eolians.fr/jquery/transme...etes-ajax.html
toshTosh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h20.


 
 
 
 
Partenaires

Hébergement Web