[英]Operations with tag select in PHP
怎么樣,我嘗試執行一個簡單的操作(加,減或乘)。 99 + 5 = 104表格
<select> + <input> = result
在輸入標簽之間沒有問題,問題是當我有一個要從BD中選擇的數字列表時。
在BD中,以下數據可用。 如您所見,折扣與您的ID不符。
Id discount
1 100
2 99
3 98
4 96
5 95
如果要執行操作,在列出折扣時,標簽
<option value = "<? PHP echo ''. $ row ['id'];?>"> <? PHP echo ''. $ row ['discount'];?> </ option>
該操作通過id而不是折扣完成。 一個總和的示例,我們選擇99的折扣,然后將5的金額插入正確的結果= 104。
問題在於,在操作時,而不是99時,其ID的值= 2,因此2 + 5 = 7。
我在執行操作時的問題是,我可以使用折扣值而不是ID。
<html>
<head>
<script language='javascript'>
function fadd(){
n1=document.f1.cveDiscount.value;
n2=document.f1.amount.value;
res=document.f1.resul.value;
res=parseInt(n1)+parseInt(n2);
document.f1.resul.value=res;
}
</script>
</head>
<body>
<form name='f1' action="" method=POST>
<label name=lblnum1>Num 1:</label>
<select name="cveDiscount" class="form-control ">
<?PHP
if ($resultado = $mysqli->query("SELECT id,discount FROM discount order by id desc", MYSQLI_USE_RESULT)) {
while ($row = mysqli_fetch_array($resultado)){
?>
<tr>
<option value="<?PHP echo ''.$row['id'];?>"><?PHP echo ''.$row['discount'];?></option>
</tr>
<?PHP
}
}
?>
<option value="#" selected>Select discount</option>
</select>
<label name=lblnum2>Num 2:</label>
<input type=text name='amount'/>
<input type=button value=" = " onclick="fadd()">
<input type=text name='resul'/>
</form>
</body>
</html>
您可以使用:
selectedOptions :...包含當前選中的元素中包含的元素的列表。 所選選項的列表是一個HTMLCollection對象,每個當前所選選項都有一個條目。
因此,您可以從以下位置進行更改:
n1=document.f1.cveDiscount.value;
至:
n1 = document.f1.cveDiscount.selectedOptions[0].textContent;
無論如何,我建議在dom ready時使用.addEventListener()而不是內聯事件處理程序。
片段:
document.addEventListener('DOMContentLoaded', function(e) { document.querySelector('[type=button]').addEventListener('click', function(e) { n1 = document.f1.cveDiscount.selectedOptions[0].textContent; n2 = document.f1.amount.value; res = document.f1.resul.value; res = parseInt(n1) + parseInt(n2); document.f1.resul.value = res; }) })
<form name='f1' action="" method=POST> <label name=lblnum1>Num 1:</label> <select name="cveDiscount" class="form-control "> <option value="1">100</option> <option value="2">99</option> <option value="3">98</option> <option value="4">96</option> <option value="5">95</option> <option value="#" selected>Select discount</option> </select> <label name=lblnum2>Num 2:</label> <input type=text name='amount'/> <input type=button value=" = "> <input type=text name='resul'/> </form>
只需更改帶有discount
option
內的價值
<option value="<?PHP echo ''.$row['discount'];?>"><?PHP echo ''.$row['discount'];?></option>
這樣,您可以輕松地將discount
作為值而不是其id
傳遞
如果出於某種原因需要將這些id值保留在其中,則稍微更改javascript還可以讓您使用select標記選項中的文本:
var sel = document.f1.cveDiscount;
var n1 = sel.options[sel.selectedIndex].text;
這將返回預期的結果。
當前,您正在UI中顯示Discount
的值,但實際上是傳遞id
作為添加值。 只需從查詢中獲取折扣並將其作為值放入您的選項標簽中,如下所示:
<select name="cveDiscount" class="form-control ">
<?PHP
if ($resultado = $mysqli->query("SELECT discount FROM discount order by id desc", MYSQLI_USE_RESULT)) {
while ($row = mysqli_fetch_array($resultado)){
?>
<tr>
<option value="<?PHP echo ''.$row['discount'];?>"><?PHP echo ''.$row['discount'];?></option>
</tr>
<?PHP
}
}
?>
<option value="#" selected>Select discount</option>
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.