2010-06-14 4 views
1

Comment puis-je modifier la valeur d'entrée d'un formulaire avec javascript en fonction de la sélection de l'élément de liste déroulante. J'ai un formulaire avec quelques valeurs importées, et il y a un champ de sorcière dont la valeur importée peut être changée via une combobox. Dans mon cas:Comment modifier la valeur d'entrée d'un formulaire avec javascript

print("<input type='hidden' name='issue_array[{$issue["nr"]}][\"supplier\"]' value='{$issue["supplier"]}' />"); 

J'ai un combobox, que si je change sa valeur, devrait changer la valeur de l'entrée ci-dessus.

C'est ce que j'ai essayé:

print("<select name='supplier_combo' onchange='setSupplierInputValue(this.value, ${issue['nr']})'>"); 

et le script:

echo "\r\n" . '<SCRIPT TYPE="text/javascript">' . "\r\n"; 
    echo 'function setSupplierInputValue(value, issue_nr)' . "\r\n"; 
    echo '{' . "\r\n";  
    echo '  issue_array[issue_nr]["supplier"] = value;';   
    echo '}' . "\r\n";  
    echo '</SCRIPT>'. "\r\n"; 

Mais cela ne fonctionne pas, s'il vous plaît aider.

+0

Vous pourriez probablement simplifier considérablement la chose que vous essayez de faire, par exemple. avec le moteur de template Smarty pour éviter les annotations codées en dur. –

Répondre

2

changer votre ligne

issue_array[issue_nr]["supplier"] = value; 

pour ressembler à ceci (vous devez sélectionner le champ caché en utilisant getElementsByName - ou définir un identifiant pour le champ caché et utiliser getElementById):

document.getElementsByName('issue_array['+issue_nr+']["supplier"]')[0].value = value; 
+0

Ne fonctionne pas ... Je reçois un tableau vide – Biroka

+0

eu le travail ..... merci – Biroka

0

donnez à la combobox un identifiant par exemple sélection et id pour l'entrée dites inputExample, donc en utilisant jquery vous pouvez

$('#selection').change(function(){ 
     //you get the value using $('#selection option:selected').text() 
     $('#inputExample').val('somevalue you determined'); 
    }) 

J'espère que cela aide. Vous pouvez également voir la référence sur le site jquery: http://api.jquery.com/change/

Questions connexes