2013-06-22 89 views
0

親愛的朋友,這個功能我找回我的用戶選擇的值,我把它放在一個隱藏字段在我的形式使用它:選擇值檢索

<SCRIPT type="text/javascript"> function updateHidden(sel){ 
var f = document.contract; 
f.sel_value.value = sel.options[sel.selectedIndex].value; 
} </SCRIPT> 

的問題是,我的選擇是內同時循環,因此重複。以這種方式設置的js函數只讀取第一個選擇中選擇的值。 我需要在函數中添加一個循環,但我不知道把它放在哪裏。 這是我的表單:

<form action="update.php" method="POST" name="contract"> 
<table class="myp-table"> 
<tr> 
<td class="head-act">Contract</td> 
</tr> 
<?php do { ?> 
<tr> 
<td class="head-act"><select name="playerContract[]" onchange="updateHidden(this)"> 
<option value="0" <?php if (!(strcmp(0, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>0</option> 
    <option value="1" <?php if (!(strcmp(1, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>1</option> 
    <option value="2" <?php if (!(strcmp(2, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>2</option> 
    <option value="3" <?php if (!(strcmp(3, $row_datacontract['playerContract']))) {echo "selected=\"selected\"";} ?>>3</option> 
</select> 
<input type="hidden" name="sel_value"></td> 
<td><input name="id[]" type="hidden" value="<?php echo $row_datacontract['id']; ?>"/> </td> 
</tr> 
<?php } while ($row_datacontract = mysql_fetch_assoc($datacontract)); ?> 
<tr class="zebra"> 
<td><input class="linkbuttonmp" name="contract" id="submit" type="submit" value="Invio" /></td> 
    </tr> 
</table> 
</form> 

謝謝。

+0

你怎麼知道你需要一個循環,如果你不知道往哪裏放呢? – GolezTrol

+0

我以爲我需要它,但我不知道Js很好,所以我不太確定... – blips

回答

0

問題是,你將有n號碼<input type="hidden" name="sel_value">,那麼它怎麼知道哪個name="sel_value"改變了?最好將其更改爲sel_value[]或唯一名稱。

但是,你的功能可以很容易地使用.nextElementSibling

function updateHidden(sel){ 
    sel.nextElementSibling.value = sel.options[sel.selectedIndex].value; 
} 

看到的jsfiddle改變 - http://jsfiddle.net/aFNdt/1/

+0

謝謝肖恩,它完美的作品! – blips