Php 需要添加作为mysqli数组一部分的html输入值
我是一个极端的新手,当谈到编码,但在这里它去无论如何。我有一个表,它的前两列由MySQL数据库填充,每行有一个文本框供用户输入。然后将其写回数据库。这很好,我需要从用户输入的每个文本框中得到总数,然后从页面前面的另一个文本框中减去。我需要得到budgetamount输入字段的总和 这是我的表格代码:Php 需要添加作为mysqli数组一部分的html输入值,php,jquery,html,mysql,mysqli,Php,Jquery,Html,Mysql,Mysqli,我是一个极端的新手,当谈到编码,但在这里它去无论如何。我有一个表,它的前两列由MySQL数据库填充,每行有一个文本框供用户输入。然后将其写回数据库。这很好,我需要从用户输入的每个文本框中得到总数,然后从页面前面的另一个文本框中减去。我需要得到budgetamount输入字段的总和 这是我的表格代码: <span id="sum">0</span> <?php $result = mysqli_query($con,"SELECT en
<span id="sum">0</span>
<?php
$result = mysqli_query($con,"SELECT envelopename, envelopebudget FROM envelopes");
echo "<table border='1' id='table_new_paycheck'>
<tr>
<th>Envelope</th>
<th>Budget</th>
<th>Amount</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<input type='hidden' value='$row[envelopename]' name='envelopename[]'/>";
echo "<tr>";
echo "<td>" . $row['envelopename'] . "</td>";
echo "<td>" . $row['envelopebudget'] . "</td>";
?><td><input type="text" name="budgetamount[]" class="textboxone"></td><?php;
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?><br>
0
以下是我尝试过的jquery脚本,但它不起作用:
<script language="JavaScript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
$(document).ready(function(){
//iterate through each textboxes and add keyup
//handler to trigger sum event
$(".textboxone").each(function() {
$(this).keyup(function(){
calculateSum();
});
});
});
function calculateSum() {
var sum = 0;
//iterate through each textboxes and add the values
$(".textboxone").each(function() {
//add only if the value is number
if(!isNaN(this.value) && this.value.length!=0) {
sum += parseFloat(this.value);
}
});
//.toFixed() method will roundoff the final sum to 2 decimal places
$("#sum").html(sum.toFixed(2));
}
$(文档).ready(函数(){
//遍历每个文本框并添加keyup
//触发总和事件的处理程序
$(“.textboxone”).each(函数(){
$(this).keyup(function(){
计算um();
});
});
});
函数calculateSum(){
var总和=0;
//遍历每个文本框并添加值
$(“.textboxone”).each(函数(){
//仅当值为number时添加
如果(!isNaN(this.value)&&this.value.length!=0){
sum+=parseFloat(此.value);
}
});
//.toFixed()方法将最终总和舍入到小数点后2位
$(“#sum”).html(sum.toFixed(2));
}
我试着使用jquery,认为这会在他们输入每个文本框的值时给我即时的响应,但我不知道该怎么做。这是一个我想要的示例,但我无法将其调整为与我的阵列一起使用。这是一个我正在寻找的例子。它包括添加部分
感谢您的帮助。将keyup处理程序直接应用于返回的jQuery对象似乎效果良好 我已经更新了Newtt制作的小提琴,我认为它能满足你的需求 使用
parseInt()时请注意第二个参数“10”:
sum+=parseInt($(this).val(),10)代码>
这样可以确保返回一个以10为基数的整数。如果您没有明确告诉它使用base-10,如果用户输入“012”,这将被解释为八进制(base-8),并且base-10中的值为10,这可能不是您想要的
编辑:另外请注意,我没有做您所做的任何NaN检查
编辑:除非另有规定,否则parseInt现在似乎默认为基数10,最好是显式的并提供参数
我进一步调整了小提琴,允许您提到的其他用户输入。看到这里的更新了吗?是的,但是将有一个未定义的值的数量,所以我不能给具体的变量添加。唯一的变量是他们输入到数量不确定的文本框中的任何内容。您可以重复trsb的数量,但由于数组中的文本框没有特定的变量名,除非我可以将budgetamount[]传递给jquery,而jquery已经尝试过,但它不会处理它。我可以看看您到目前为止尝试了什么吗?如果需要,请使用JSFIDLE或在此处添加代码。这仍然不适用于我的场景。不知道为什么,除了可能与阵列有关,但我不知道。我认为这根本不是在给剧本打电话,也不是在跟剧本打交道。我曾尝试将document.writes语句放在jquery中,但它们从来没有出现过,所以我不确定。好吧,让脚本执行肯定是第一步:)也可以使用console.log(),输出结果会出现在开发人员控制台中,或者firebug的控制台中(如果您安装了它的话)(如果您不这样做,并且您正在进行javascript开发,那么您应该真正检查它。Firebug还将向您显示javascript中遇到的任何语法/解析错误。