Recupertation de la valeur d'une liste

loulou -  
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

<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:

3 réponses

thunder413 Messages postés 169 Statut Membre 23
 
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
1
loulou
 
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 ?
0
thunder413 Messages postés 169 Statut Membre 23
 
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
<?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
0