valeur de <input text> en fonction d'un <select>

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : valeur de <input text> en fonction d'un <select>

par syrius contente » 06 avr. 2005, 10:24

ok super ça marche bien cette fois ci.

par thierry » 05 avr. 2005, 18:14

salut,

je te propose de créer un hidden où tu stockeras ton type_log (à mon avis on peut trouver mieux :) ).

donc :

Code : Tout sélectionner

<input type="hidden" name="type">
et à rajouter dans le javascript :

Code : Tout sélectionner

i=document.form.type_log.options.selectedIndex; document.form.type.value=document.form.type_log.options[i].text;

par Invité » 05 avr. 2005, 17:15

:cry: :cry:

j'avais parlé trop vite!!!

ce bout de code fonctionne en effet, mais je ne peux plus récupérer la valeur de type_log (censée etre égale à type_log|$j]), puisqu'elle est désormais égale a prix_log[$j]...

il ne faut donc pas utiliser de <option value='quelquechose'>. :roll:

Si quelqu'un a une autre idée....

par syrius qui s'invite » 04 avr. 2005, 15:12

mille merci !!!!!!!!!

ça marche enfin!!!!!

j'ai en effet enlevé le this.form et mis le nom de mon formulaire.

merci encore!

par thierry » 04 avr. 2005, 14:33

chez moi quand j'utilise this.form ça ne marche pas.
par contre quand je met le nom de ma form ça marche

donc :

Code : Tout sélectionner

<form name="toto" method ...> ...onChange="choix();"... function choix() document.toto.prix_log.value...

par syrius qui s'invite » 04 avr. 2005, 14:20

je vais hurler!!!

j'ai fais ça :

Code : Tout sélectionner

function choix(form){ document.form.prix_log.value = document.form.type_log.value; }
et ça :

Code : Tout sélectionner

<td><select name="type_log" onChange='choix(this.form)'> <? $j=0; while($j!=$nb_type_log){ ?> <option value='<? echo($prix_log[$j]); ?>'><? echo($type_log[$j]); ?></option> <? $j++; } ?> </select> </td> <td><input type='text' name='prix_log' size='20'/></td>
celui qui me trouve ma faute a droit à.... à je sais pas quoi d'ailleurs. :lol:

par thierry » 04 avr. 2005, 14:09

essaie ça :
<select name="type_log" onChange='choix2(this.form)'>
<? 
$j=0;
while($j!=$nb_type_log){

echo('<option value="' .$prix_log[$j] . '" >');
echo($type_log[$j]);
echo('</option>');

$j++;
} 
?>
</select> 

et pour la fonction js prend celle que je t'ai posté.

sinon je ne vois pas très bien où tu as voulu en venir avec ta fonction, ni si un nom de balise peut être un chiffre.

par syrius qui s'invite » 04 avr. 2005, 13:54

j'ai essayé ça :

Code : Tout sélectionner

function choix(form){ i = document.form.type_log.selectedIndex; txt = document.form.prix["+i+"].value; document.form.type_log.selectedIndex = 0; document.form.prix_log.value=txt; }
marche pô non plus :cry:

par thierry » 04 avr. 2005, 12:29

ok j'avais mal lu ton post.

dans ce cas là garde la fonction javascript que tu avais faite et rajoute document avant le form.

par contre si je me souvient bien l'index d'un select commence à partir de 0.

donc soit tu reseigne l'attribut value de tes options avec le prix (dans ce cas là la fonction que je t'ai filé fera l'affaire, et à part si tu en a vraiment besoin tu n'as plus à générer de champs hidden), soit tu bricole pour mettre ton index à niveau.

par Invité » 04 avr. 2005, 12:13

euh.... si je fais ça il va me copier le type_log dans le champs texte :roll: ....

moi je veux qu'il m'affiche le prix_log[$i], sachant que la valeur de $i peut etre récupérée avec Seleted Index...

par thierry » 04 avr. 2005, 11:59

essaie ça :

Code : Tout sélectionner

function choix2(form){ document.form.prix_log.value = document.form.type_log.value }

valeur de <input text> en fonction d'un <select>

par syrius qui s'invite » 04 avr. 2005, 10:12

bonjour,

je travaille sur une application où se trouve un formulaire.
j'ai récupéré 2 tableaux de ma BDD : $type_log[$i] et $prix_log[$i].
A chaque type correspond un prix.

la liste des type_log se trouvent dans un menu déroulant, et je veux que suivant le type_log choisi, le prix correspondant apparaisse automatiquement dans un champs texte a côté.
j'ai fais ça, mais ça marche pas :(

voici mon code php :

Code : Tout sélectionner

<td><select name="type_log" onChange='choix2(this.form)'> <? $j=0; while($j!=$nb_type_log){ ?> <option> <? echo($type_log[$j]); ?> </option> <? $j++; } ?> </select> <? $j=0; while($j!=$nb_type_log){ ?> <input type='hidden' name='<? echo($j); ?>' value='<? echo($prix_log[$j]); ?>'> <? $j++; } ?> </td> <td><input type='text' class='input' name='prix_log' size='20' value=''></td>

voici ma fonction javascript :

Code : Tout sélectionner

function choix2(form){ i = form.type_log.selectedIndex; form.prix_log.value = form.i.value; }

quelqu'un sait faire?

merci
:oops: