Recupertation de la valeur d'une liste
loulou
-
thunder413 Messages postés 169 Statut Membre -
thunder413 Messages postés 169 Statut Membre -
Bonjour,
je suis en train de concevoir un mini configurateur en ligne pour assembler un pc à la carte, en gros j'ai un tableau à deux champs, dans le premier champ l'utilsateur fait son choix parmi une liste de choix, dans le deuxième, il y a un champ texte dans lequel je voudrais afficher le prix du composant.
voilà le code du champ texte sur lequel je planche
je suis en train de concevoir un mini configurateur en ligne pour assembler un pc à la carte, en gros j'ai un tableau à deux champs, dans le premier champ l'utilsateur fait son choix parmi une liste de choix, dans le deuxième, il y a un champ texte dans lequel je voudrais afficher le prix du composant.
voilà le code du champ texte sur lequel je planche
<input name="pcartesm" type="text" id="pcartesm" value="<?php $SQL = "SELECT prix FROM 'cartesm' WHERE nom=''"; $res = mysql_query($SQL); $val=mysql_fetch_array($res); echo "$val[0]"; ?>" readonly="readonly">je veux que le prix qu'il affiche soit le prix correspondant au nom du composant choisi mais je ne sais pas comment lui indiquer d'utiliser la valeur de la liste (cartem par ex) pour comparer.
A voir également:
- Recupertation de la valeur d'une liste
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Liste de diffusion whatsapp - Guide
- Site dangereux liste - Guide
3 réponses
salut
pour ton probleme la technologie ajax est la plus adapter mais je ne sais pas si tu est initier a celle ci donc en dur la solution sera de creer un tableau javascript dynamiquement en php contenant tout les prix de tes different composant sans exception le tableau sera du type associatif indexer par le nom du composant ensuite tu attribut une fonction a ta liste qui sera appler avec le gestionnaire d'evenement Onchange qui va transmetre la valeur actuel de la liste ensuite ta fonction se charger de metre le prix dans le champs input
en gros c'est ca si l'une des solution te vas et que tu trouve un probleme pour la mettre en place je peut t'aider
CORDIALEMENt
pour ton probleme la technologie ajax est la plus adapter mais je ne sais pas si tu est initier a celle ci donc en dur la solution sera de creer un tableau javascript dynamiquement en php contenant tout les prix de tes different composant sans exception le tableau sera du type associatif indexer par le nom du composant ensuite tu attribut une fonction a ta liste qui sera appler avec le gestionnaire d'evenement Onchange qui va transmetre la valeur actuel de la liste ensuite ta fonction se charger de metre le prix dans le champs input
en gros c'est ca si l'une des solution te vas et que tu trouve un probleme pour la mettre en place je peut t'aider
CORDIALEMENt
Si je comprends bien a&vec ta soluce (php/js) je ne peux plus utiliser la base de données, mais je devrais plutot tout entrer manuellement dans un tableau ?
au contraire avec php/js comme soluce tu aura tous automatiquement je m'explique
supposons que le formulaire se trouve dans un fichier nomé form.php
au tous debut tu te connecte a ta bd set tu selection tous les prix et tous les composants et leurs prix
en gros c'est ce que je veux dire donc tu voit bien qu'on se connecte une seul fois a ta base selectionne tous les composant et prix et ensuite la correspondance est gerer par le javascript donc l'affichage du prix correspondant a un composant est quasi instantaner donc au revoir les truc manuel
remarque: prix et composant sont 2 variable tableau global donc accessible meme pour la fonction getprice()
attention aucun de ces codes n'a ete tester j'ai les ecrit juste pour expliquer mon point de vu mais si tu decide de l'adopter je serai la pour t'aider et aussi je precise que cette solution peut ne pas etre optimale mais elle marche quand meme
CORDEILAMENT
supposons que le formulaire se trouve dans un fichier nomé form.php
au tous debut tu te connecte a ta bd set tu selection tous les prix et tous les composants et leurs prix
<?php
$sql = "SELECT * FROM composant ";
$query = mysql_query($sql) or die(mysql_error()) ;
$max = mysql_num_rows($query);
$i=0;
$tabComp
?>
<script type='text/javascript'>
<?php $jsCode1 = "prix= new Array(";?>
<?php $jsCode2 = "composant= new Array(";?>
while($i < $max) {
$jsCode1.="'".$row['prix']."'";
$jsCode1.=($i+1<$max)?',':');';
$jsCode2.="'".$row['composant']."'";
$jsCode2.=($i+1<$max)?',':');';
$tabComp[] = $row['composant'];
$i++;
}
?>
</script>
//enuiste ta liste de selection
<select name ="composanbt" onchange="getPrice(this)">
<?php
for($i=0;$i<$max;$i++) {
echo "<option value='".$tabComp[$i]."'>".$tabComp[$i]."</option>";
}
?>
</select>
<input type='text' name='prix' id='prix'>
//la fonction get price
<scritp type='text/javascript'>
function getPrice(Obj) {
var comp = Obj.selectedIndex;
var val = Obj.options[comp].value;
for( i=0; i< composant.length;i++) {
if( val == composant[i]) {
break;
}
}
document.getElementById('prix').value=prix[i];
}
</script>
en gros c'est ce que je veux dire donc tu voit bien qu'on se connecte une seul fois a ta base selectionne tous les composant et prix et ensuite la correspondance est gerer par le javascript donc l'affichage du prix correspondant a un composant est quasi instantaner donc au revoir les truc manuel
remarque: prix et composant sont 2 variable tableau global donc accessible meme pour la fonction getprice()
attention aucun de ces codes n'a ete tester j'ai les ecrit juste pour expliquer mon point de vu mais si tu decide de l'adopter je serai la pour t'aider et aussi je precise que cette solution peut ne pas etre optimale mais elle marche quand meme
CORDEILAMENT