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 :

Génération de <select> et submit


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 132
    Par défaut Génération de <select> et submit
    Bonjour,

    Je bloque sur un point de mon développement :

    J'ai mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<FORM class="validation_ajout" name="formulaire" id="formulaire">
    		<label>Nom</label><input type="text" name="item_name" id="item_name"/>
    		<input type="button" id="add_select" value="Ajouter un bonus"/>
    		<div id="select_dynamique"></div>
    		<input type="submit" name="Valider" class="validation_form">
    	</FORM>
    Je rempli la div avec des <SELECT> en Ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	$("#add_select").click(function () { 
    			var selecteur = 1;
     
    			//alert("cliked");
    			$.ajax({
    			type: "POST",
    			url : "../../includes/calc/add_item.php",
    			data : "pos="+selecteur,
    			success : function(data) {
    			var resultat = data.match(/>](.+?)\[</);
    			$("#select_dynamique").html($("#select_dynamique").html()+'<BR/>'+ data );
    			cpt_bonus++;
    			}});
    	});
    et

    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
    <?php
    $objet=$_POST['pos'];
    $tmp = '<SELECT name="type_bonus">';
    $query="DESCRIBE bonus";
    $req = mysql_query($query) or die($query); 
    while($data = mysql_fetch_assoc($req)) 
    		{ 
    		 //on affiche les informations de l'enregistrement en cours 
    		 if ($data['Field'] == 'idbonus' || $data['Field'] == 'iduser' || $data['Field'] == 'idbuild')
    		 {
    		 }
    		 else
    		 {
    			$tmp .= '<OPTION value="$data[1]" >'.$data['Field'].'</OPTION>';
     
    		 }
     
    		} 
    $tmp .= '</SELECT>';
    $tmp .= '<input name="'.$data['Field'].'" type="text"/>';
    echo $tmp; 
    ?>
    Quand je veux soumettre mon formulaire grâce à mon évènement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	$("#formulaire").submit(function(){
    		$.ajax({type:"POST", data: $(this).serialize(), url:"../../includes/calc/valid_add_item.php",
    			success: function(data){
    				$("#post").html(data);
    			},
                            error: function(){
    			        $("#post").html('Une erreur est survenue.');
    			}
    		});
    		return false;
    	});
    Il me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    item_name => test
    type_bonus => $data[1]
    Sachant que j'ai ajouté deux <select>, il devrait me retourner le nom de l'item, plus deux lignes "bonus" avec le libellé et la valeur associées.

    Pourriez vous m'aider à trouver mon erreur.

    Merci

  2. #2
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut
    C'est normal, car tu crées à chaque fois une liste déroulante qui porte le même "name". Il faut les nommer différemment, soit avec jQuery après les avoirs ajouter au HTML, soit en PHP.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 132
    Par défaut
    D'accord, je comprend le problème, mais il y en a un autre, il devrait au moins m'assigner la dernière valeur, pas $data[1].. Si ?

  4. #4
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut
    c'est normal tu assignes la valeur $data[1] à tes options

    Il faut que tu remplaces '<OPTION value="$data[1]" >'
    par '<OPTION value="'.$data[1].'" >'

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 132
    Par défaut
    Oui et donc admettons que $data[1] soit égal à "Toto", le js devrait me dire qu'il a stocké "Toto" et pas $data[1] vu que le traitement s'est fait en php

  6. #6
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut
    oui mais comme tu l'avais écrit, PHP donnait toujours la valeur $data[1] à tous les options et non pas la valeur de $data[1]

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

Discussions similaires

  1. Conserver le choix d'un select après un submit
    Par rin01 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/05/2011, 10h48
  2. [html:select] Génération d'une liste déroulante
    Par g.greg45 dans le forum Struts 1
    Réponses: 11
    Dernier message: 12/01/2007, 18h05
  3. submit des select
    Par enimiste dans le forum Struts 1
    Réponses: 5
    Dernier message: 26/05/2006, 16h22
  4. select apres submit
    Par mereyj dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 10/09/2005, 15h50
  5. [html:select][html:options] pb de submit
    Par wazup dans le forum Struts 1
    Réponses: 5
    Dernier message: 03/05/2004, 18h54

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