2017-03-16 239 views
0

我有一個填充了mysql數據的表。我想根據下拉的值更改文本框的值。我所做的只是第一行更改了它的值,但下一行不起作用。 以下是我的代碼。基於動態選擇選項值更改文本框的值

//this is inside while loop 
<input type='text' name='qqty[]' value='<?php echo $avail; ?>' id="avail" class='form-control1' readonly = 'readonly'> 

<select class="form-control1" name="qty[]" id="sType" onChange="check();"> 
     <option value="<?php echo $avail;?>"><?php echo $Uconv;?></option> 
     <option value="<?php echo $qty;?>"><?php echo $uom;?></option> 
</select> 

//my javascript code 
<script> 
function check() { 
    document.getElementById("avail").value = document.getElementById("sType").value; 
} 
</script> 

回答

3

您必須爲每個輸入提供單獨的id,然後找到它。假設您的迭代變量爲$i

<?php 
    $i=1; 
    while (your_condition) { 
?> 
    <input type='text' name='qqty[]' value='<?php echo $avail; ?>' id="avail<?= $i ?>" class='form-control1' readonly = 'readonly'> 

    <select class="form-control1" name="qty[]" id="sType" onChange="check('<?= $i ?>');"> 
      <option value="<?php echo $avail;?>"><?php echo $Uconv;?></option> 
      <option value="<?php echo $qty;?>"><?php echo $uom;?></option> 
    </select> 

    //my javascript code 
    <script> 
    function check(i) { 
     document.getElementById("avail"+i).value = document.getElementById("sType").value; 
    } 
    </script> 
<?php 
$i++; 
} // end while 
?> 
+0

嗨。謝謝!如何分配$ i的值?我正在使用while循環獲取mysql數據庫上的數據。 – Chris

+0

我更新了答案的代碼 – gmc

+0

它的工作原理!非常感謝先生@gmc! :) – Chris

-1

您正在通過id引用第一行元素。 您需要更改每行的id,並根據您編輯的行更改值。

0

如果你有一個循環內的代碼,你有相同的ID(avail和這樣的)多個元素。當你做getElementById時,它將只返回第一個具有該ID的元素,AKA,第一行。

您應該添加唯一的ID給每個元素,比方說,通過增加一個遞增的整數內循環,這樣的:

<?php 
for ($x = 0; $x <= 10; $x++) { 
    ?> 
     <input type='text' name='qqty[]' value='<?php echo $avail; ?>' id="avail_<?php echo $x; ?>" class='form-control1' readonly = 'readonly'> 
     <select class="form-control1" name="qty[]" id="sType_<?php echo $x; ?>" onChange="check('<?php echo $x; ?>');"> 
      <option value="<?php echo $avail;?>"><?php echo $Uconv;?></option> 
      <option value="<?php echo $qty;?>"><?php echo $uom;?></option> 
     </select> 
    <?php 
} 
?> 
<script> 
function check(i) { 
    document.getElementById("avail_"+i).value = document.getElementById("sType_"+i).value; 
} 
</script> 
0

試試這個方法:

<select onchange="ChooseContact(this)"> 
    <option value='1'>1</option> 
    <option value='2'>2</option> 
</select> 

<input id="friendName"> 

function ChooseContact(data) { 

    document.getElementById ("friendName").value = data.value; 

} 
相關問題