怎么样,我尝试执行一个简单的操作(加,减或乘)。 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。
问题在于,在操作时,它使用ID的值= 2而不是99,因此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>
答案 0 :(得分:2)
您可以使用:
selectedOptions:...包含当前选定元素中包含的元素列表。所选选项的列表是一个HTMLCollection对象,每个当前所选选项都有一个条目。
因此,您可以更改:
n1=document.f1.cveDiscount.value;
收件人:
n1 = document.f1.cveDiscount.selectedOptions[0].textContent;
无论如何,我建议在dom准备就绪时使用.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>
答案 1 :(得分:1)
只需用/work/waterhouse_team/apps/schnablelab
更改signin()
{
var ajaxResp = $.ajax({
type: "POST",
url: "XXX",
dataType: 'json',
data: {
'uid': "50",
'pass': "100"
},
success: function(response){
successLogin(response);
},
});
}
successLogin(msg){
console.log(msg);
}
内的值
view.frame = self.bounds
通过这种方式,您可以轻松地将option
传递为值,而不是其discount
答案 2 :(得分:1)
如果出于某种原因需要将这些id值保留在其中,则稍微更改javascript还可以让您使用select标记选项中的文本:
var sel = document.f1.cveDiscount;
var n1 = sel.options[sel.selectedIndex].text;
这将返回预期的结果。
答案 3 :(得分:1)
当前,您正在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>