Liste déroulante et dynamisme ?
microsoluces
Messages postés
35
Statut
Membre
-
microsoluces Messages postés 35 Statut Membre -
microsoluces Messages postés 35 Statut Membre -
Bonjour à tous,
Voila je veux faire quelque chose qui me semble simple mais je n'y arrive po !
En php j ai programmé une liste/menu (déroulante) qui va chercher son contenu dans une table. Jusque là pas de problème.
A droite de cette liste se trouve un champ texte qui est sensé contenir le prix du produit selectionné dans la liste, et qui change à chaque modification de cette même liste.
Je sais qu'il faut chercher du coté de script (java) mais là je coince...
Si quequ unavait une idée...
Mille mercis par avance.
Voila je veux faire quelque chose qui me semble simple mais je n'y arrive po !
En php j ai programmé une liste/menu (déroulante) qui va chercher son contenu dans une table. Jusque là pas de problème.
A droite de cette liste se trouve un champ texte qui est sensé contenir le prix du produit selectionné dans la liste, et qui change à chaque modification de cette même liste.
Je sais qu'il faut chercher du coté de script (java) mais là je coince...
Si quequ unavait une idée...
Mille mercis par avance.
A voir également:
- Liste déroulante et dynamisme ?
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Site dangereux liste - Guide
3 réponses
script (java)
Non !
Voir : mythe javascript c est la meme chose que java
Pour le script, je pense que tu peux utiliser l'attribut onchange (quand on change l'option d'un select) sur le select qui correspond au prix.
Il faudrait ensuite écrire le prix qui va avec l'option (pour ca tu peux faire un array qui associe a chaque option un prix).
Tu peux le mettre dans un input de type texte.
Je ne suis pas très fort en JS, mais c'est une piste ;-)
a plus
Non !
Voir : mythe javascript c est la meme chose que java
Pour le script, je pense que tu peux utiliser l'attribut onchange (quand on change l'option d'un select) sur le select qui correspond au prix.
Il faudrait ensuite écrire le prix qui va avec l'option (pour ca tu peux faire un array qui associe a chaque option un prix).
Tu peux le mettre dans un input de type texte.
Je ne suis pas très fort en JS, mais c'est une piste ;-)
a plus
Bjr
Voic le code que j'utilise régulièrement en PHP + JavaScript + DOM : c'est un petit peu objet mais facile à comprendre je pense
Je passe par un tableau contenant une liste d'objet : ainsi j'ai une sorte de tableau associatif en JavaScript et c'est particulièrement souple.
Tu peux ajouter très facilement des infos sur un produit comme par ex la remise , la qté en stock etc
Une variante pourrait être d'utiliser l'identifiant du produit ici ID à la place d'un index numérique : bref ca te permettrait de retrouver un produit en faisant : produits["0001"]["prix"] cool non ?
Mais trêve de bla bla voici le code (ultra simplifié bien sûr)
Voilà
J'espère que ca t'ira, il faut juste que tu génères le bon code en PHP : j'ai indiqué la partie à générer dynamiquement
Voic le code que j'utilise régulièrement en PHP + JavaScript + DOM : c'est un petit peu objet mais facile à comprendre je pense
Je passe par un tableau contenant une liste d'objet : ainsi j'ai une sorte de tableau associatif en JavaScript et c'est particulièrement souple.
Tu peux ajouter très facilement des infos sur un produit comme par ex la remise , la qté en stock etc
Une variante pourrait être d'utiliser l'identifiant du produit ici ID à la place d'un index numérique : bref ca te permettrait de retrouver un produit en faisant : produits["0001"]["prix"] cool non ?
Mais trêve de bla bla voici le code (ultra simplifié bien sûr)
<html>
<head>
<title>Liste de produits</title>
<script language="JavaScript">
<!--
var produits = new Array();
// Ce code doit être généré en PHP
produits[0] = new Object();
produits[0]["ID"]="0001";
produits[0]["designation"]="Produit nr 1";
produits[0]["prix"]=10.25;
produits[1] = new Object();
produits[1]["ID"]="0002";
produits[1]["designation"]="Produit nr 2";
produits[1]["prix"]=2.36;
produits[2] = new Object();
produits[2]["ID"]="0003";
produits[2]["designation"]="Produit nr 3";
produits[2]["prix"]=38.00;
// Fin de la génération en PHP
// Option attend les paramètres suivants :
// 1. text = texte affiché dans la liste
// 2. value = valeur de la liste à transmettre (facultatif)
// 3. defaultSelected = true si l'élément doit être l'élément sélectionné par défaut, sinon false (facultatif)
// 4. selected = true si l'élément doit être sélectionné dans la liste sinon false (facultatif)
function ajouter_element(lst,texte,valeur,defaut,selectionne)
{
var nouvel_element = new Option(texte,valeur,defaut,selectionne);
lst.options[lst.length] = nouvel_element;
return nouvel_element;
}
function charger_liste_produits(liste_id)
{
var lst = document.getElementById(liste_id);
for (var i = 0; i < produits.length; i++)
{
ajouter_element(lst,produits[i]["designation"],produits[i]["ID"]);
}
}
function selection_produit()
{
var lst = document.getElementById("lst_produits");
if (lst.selectedIndex == -1)
{
document.getElementById("txt_id").value="";
document.getElementById("txt_dsg").value="";
document.getElementById("txt_prix").value="";
}
else
{
document.getElementById("txt_id").value= produits[lst.selectedIndex]["ID"];
document.getElementById("txt_dsg").value=produits[lst.selectedIndex]["designation"];
document.getElementById("txt_prix").value=produits[lst.selectedIndex]["prix"]+" €";
}
}
function load()
{
charger_liste_produits("lst_produits");
}
// -->
</script>
</head>
<body onload="load()">
<table>
<form name="achat">
<tr >
<td rowspan="3" style="padding-right:20px" valign="top">
<select name="lst_produits" id="lst_produits" size="1" onChange="selection_produit()">
</select>
</td>
<td>Id</td>
<td><input type="text" id="txt_id" name="txt_id"></td>
</tr>
<tr>
<td>Désignation</td>
<td><input type="text" id="txt_dsg" name="txt_dsg"></td>
</tr>
<tr>
<td>Prix</td>
<td><input type="text" id="txt_prix" name="txt_prix"></td>
</tr>
</form>
</table>
</body>
</html>
Voilà
J'espère que ca t'ira, il faut juste que tu génères le bon code en PHP : j'ai indiqué la partie à générer dynamiquement