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

Bibliothèques & Frameworks Discussion :

Récupérer les valeurs de plusieurs input


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut Récupérer les valeurs de plusieurs input
    Bonjour, j'utilise la librairie prototype pour charger une page à la volé , afin de rajouter une nouvelle ligne contenant des input . voici m fct appelante
    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
     
    /***************** AJOUT LIGNE INGREDIENT RECETTE ******************************/
    /*function add_ingredient(ingredient,quantite,unite,prix)*/
    function add_ingredient(ingredient,Q,U,P)
    {
    	if(Q!="")
    	{
    		//Suppression de l'élément d'option
            var select_liste = document.getElementById("ingredient");
    		//On boucle pour retrouver quelle est l'id de l'option select qui à pour valeur id_fournisseur
     
     
    		var nom=ingredient.substring(0,ingredient.indexOf("-",0));
     
     
     
     
     
    			for(i=0;i<select_liste.length;i++)
    			{
    				var val=select_liste.getElementsByTagName("option")[i].value;
    				if(val==ingredient)
    				{
     
    					var option = select_liste.getElementsByTagName("option")[i];
    					select_liste.removeChild(option);
    					i=select_liste.length;		//Permet de sortir de la boucle for
    				}
     
    			}
    			//desactiver le bouton SELECT sil ny a plus d'options selectionnable
    			if(select_liste.length<=0)
    			{
    				var bouton_select=document.getElementById("button_add");
    				bouton_select.setAttribute("disabled",true);			
    			}
     
     
    				// --- CREATION DES VARIABLES TARGET, URL ET PARAMS ---	
    			var target = "bloc_ingredient";
    			var url = "./add_ligne_ingredient_recette.php";
     
    			var params = {ingredient: nom,quantite:Q,unite:U,prix:P};
    			// --- APPEL DE LA PAGE ASYNCHRONE ---
    			var test = new Ajax.Updater(target, url, {parameters: params, insertion: Insertion.Bottom});
    						document.formRecette.quantite.value="";
    						document.formRecette.prix_ingredient.value="";
     
    			var ancien_total=document.formRecette.prix_total_ingredient.value;			
    			document.formRecette.prix_total_ingredient.value=Number(ancien_total)+Number(P);
    			refresh_test();
     
    	}
    }
    Voiai la partie html de add_ligne_ingredient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <table class="ingredient" id="<? echo $ingredient; ?>">
    <tr >
    <td><input id="name" class="ingredient" type="text" name="ingredient[]" value="<? echo $ingredient ; ?>" disabled  /></td>
    <td><input class="ingredient" type="text" name="quantite[]" value="<? echo $quantite ; ?>" disabled  /></td>
    <td><input class="ingredient" type="text" name="unite[]" value="<? echo $unite ; ?>" disabled  /></td>
    <td><input id ="prix" class="ingredient" type="text" name="prix[]" value="<? echo $prix_final ; ?> " disabled   /></td>
     
    <td><a onClick="javascript:del_ingredient(document.getElementById('name').value,document.getElementById('prix').value);" >Suppr</a></td>
    </tr>
    </table>
    En fait je voulais savoir s'il est possible que la fonction de prototype fasse un return des nouvelles valeurs ? ou alors comment faire pour que dans refresh_test() , je récupère tout les contenu de input id="prix" , pour en faire la somme afin de calculer le total des prix.
    J'avais pensé faire quelque chose comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var total=0;
    TantQue ligne existe
                  var a= document.getElementById("Prix").value;
                  total+=a;
    Fin TantQue
    Mais je ne sais pas trop comment faire...quelqu'un pour m'aider?
    Merci

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Bonjour, j'utilise la librairie prototype pour charger une page à la volé
    En fait, pas vraiment... tu la charges probablement, mais tu ne l'utilises pas, vue la syntaxe de ton code, tu passes à coté de la majorité des fonctionnalités de Prototype.

    Ceci étant dit,
    comment faire pour que dans refresh_test() , je récupère tout les contenu de input id="prix"
    Etant donné qu'un id est censé être unique sur une page, cela est impossible.
    Tu ferais mieux de passer par des class, que tu peux récupérer avec :
    qui te renvoie un tableau des éléments input ayant la classe 'prix'.
    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 du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut
    En fait est ce possible en utilisant la librairie prototype , de faire seulement une requette sql et d'en récupérer le résultat ?
    Actuellement je m'en sers pour charger une page .php qui fait la requette et rajoute des lignes de html, donc est ce possible de faire seulement la requette et y a t il un moyen de récupérer le résultat ?

    Merci d'avance

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    En fait est ce possible en utilisant la librairie prototype , de faire seulement une requette sql et d'en récupérer le résultat ?
    Non et heureusement !
    Prototype est du JavaScript, pour pouvoir te connecter à une BDD en JavaScript, cela voudrait dire que tes identifiants de connexion sont présents dans ta page, pas top niveau sécurité !
    Tu es donc obligé de passer par une page PHP (ou autre langage serveur) pour te connecter puis renvoyer le résultat.
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 45
    Points
    45
    Par défaut
    Comment procéder dans mon cas , j'ai un menu déroulant SELECT qui liste mes ingrédients de ma BDD ( T_Ingredient ) , chaque ingrédient possède un prix au kg , et à la pièce
    donc sur une ligne <tr> j'ai 4 <td> 1/ le select 2 / la quantité ( input text) 3/un select contenant les unités (litre,gr,kg,piece) 4/input text ( ou sera affiché le résultat du calcul

    Donc j'ai fait une fnction refresh_calc qui calcul en fonction de l'ingrédient et du prix au kg et met a jour le dernier input.
    Mais le pb c'est que le prix je le passe en dur , en le concatenant , a la value du 1er select genre ( 15-kiwi , 11-oeuf ...) ce qui est moche et pas trés élégants de plus je ne peux pas passer les différents prix comme ca...
    Donc je me trouve bloqué , pour passer à ma fonction javascript les valeurs....
    car actuellement elle récupéré la balise select , sélectionée , je faisait une extraction du prix et du nom...
    Peut être que je serai obligé de travailler avec des Input type=hidden ?

Discussions similaires

  1. Récupérer les valeurs de plusieurs checkboxes
    Par Dyvaa dans le forum jQuery
    Réponses: 3
    Dernier message: 15/05/2014, 10h03
  2. récupérer et traiter les valeur de plusieur checkbox
    Par artichaudd dans le forum Langage
    Réponses: 11
    Dernier message: 26/12/2011, 18h23
  3. Récupérer les valeurs d'un input file multiple
    Par identifiant_bidon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 22/08/2011, 15h04
  4. Réponses: 5
    Dernier message: 18/02/2008, 16h11
  5. Réponses: 2
    Dernier message: 08/01/2007, 09h01

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