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 :

jQuery.post tableau


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
     jQuery.post(url, $("header").data,function(data){}, "json");
    cela n'a pas marché. Alors j'ai voulu faire un test simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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 : 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
    $(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] )
    	});
    });

  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 : 54
    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
    je ne vois pas d'où vient le problème
    Probablement du fait que tu mélanges les notations...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jQuery.post(url, $("header").data,function(data){}, "json");
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#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 !
    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 averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 18
    Par défaut
    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 : 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
    $(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

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

Discussions similaires

  1. header("Location:") et jQuery.post()
    Par gambic dans le forum Langage
    Réponses: 13
    Dernier message: 29/07/2010, 15h58
  2. transmettre le formulaire jquery poste
    Par marouxinfo dans le forum Zend Framework
    Réponses: 3
    Dernier message: 31/03/2010, 12h27
  3. Réponses: 2
    Dernier message: 29/09/2008, 10h10
  4. [jQuery] Méthode jQuery.post
    Par Llaur76 dans le forum jQuery
    Réponses: 1
    Dernier message: 07/12/2007, 15h18
  5. [AJAX][post]tableau
    Par trach.sam dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 11/05/2006, 18h39

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