gpt4 book ai didi

php - 使用数据库 onchange 中提供的 ajax 值自动计算

转载 作者:行者123 更新时间:2023-11-28 09:57:23 25 4
gpt4 key购买 nike

我不知道如何基本使用它。我正在考虑使用 javascipt 数组。

我这里有一个选择选项,其中包含数据库中的值,并且选择是动态的。 “添加行”按钮将添加另一行选项选择:

<td>Items </td>
<td style="text-align:left;">
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />

<TABLE id="dataTable" width="350px" >
<TR>
<TD><INPUT type="checkbox" name="chk[]"/></TD>
<TD>
<select name="ItemNo[]" id="select" value="ItemNo" onChange="this.disabled=true;">

<?php
$sql2="select * from jewelry_system.item where NumStored !='0' order by ItemName asc";
$result2 = mysql_query($sql2);
while($row2=mysql_fetch_array($result2)){
?>

<option value="<?php echo $row2['ItemNo']?>">
<?php echo $row2['ItemName'];?>
Php:<?php echo $row2['SalePrice'];?> </option>
<?php } ?>

</select>
</TD>
</TR>
</TABLE>
</td>
</tr>

这里是ajax应该改变什么?

<tr>
<td>Total Payment (Php):</td>
<td> <div id="tpayment">0.00</div> </td>
</tr>

我想计算选择选项中值的更改时的总付款额。由于该值只能更改一次,我应该使用数组吗?我对ajax一窍不通,尝试在w3schools学习但失败了。

谢谢

最佳答案

您可能不需要 AJAX,除非您需要在单击某种“提交”按钮之前在数据库中设置某些内容。当您使用 PHP 构建页面时,您似乎应该能够存储选择中的所有信息。您需要使用 JavaScript 在文档中显示/隐藏您的选择。

;updateTotal() 添加到您选择的 onChange 事件中:

<select name="ItemNo[]" id="select1" value="ItemNo" onChange="this.disabled=true;updateTotal()">

然后将此函数添加到您的页面或 JavaScript 文件中:

<head>
<script language="javascript" type="text/javascript">
function updateTotal() {
var dropdown = document.getElementById('select1');
var total = 0;
for (var i=0; i<dropdown.length; i++){
if (dropdown.options[i].selected) {
total += dropdown.options[i].value;
}
}
document.getElementById('tpayment').innerHTML = total;
}
</script>
</head>

由于您要添加/删除行,因此您需要像您提到的数组一样跟踪它们 - 可能是全局数组。

在 JavaScript 的开头,声明一个全局数组来存储数据表,如下所示:

var selects = new Array();

您还需要更新您的添加/删除调用:

<INPUT type="button" value="Add Row" onclick="addRow('dataTable','select1')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable','select1')" />

然后,当您调用 addRow 函数时,执行以下操作:

function addRow(rowname,selectname) {
/* ... original function stuff ... */
selects.push(selectname); /* this will add the selectname to the selects array */
}

同样,当您调用removeRow函数时,请执行以下操作:

function removeRow(rowname,selectname) {
/* ... original function stuff ... */
selects.splice(selects.indexOf(selectname),1);
updateTotal(); /* since selected items might have been removed */
}

最后,我们将像这样修改原始函数:

function updateTotal() {
var total = 0;
for (var h=0; h<selects.length; h++) {
var dropdown = document.getElementById(selects[h]);
for (var i=0; i<dropdown.length; i++){
if (dropdown.options[i].selected) {
total += dropdown.options[i].value;
}
}
document.getElementById('tpayment').innerHTML = total;
}
}

关于php - 使用数据库 onchange 中提供的 ajax 值自动计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com