Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要添加作为mysqli数组一部分的html输入值_Php_Jquery_Html_Mysql_Mysqli - Fatal编程技术网

Php 需要添加作为mysqli数组一部分的html输入值

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

我是一个极端的新手,当谈到编码,但在这里它去无论如何。我有一个表,它的前两列由MySQL数据库填充,每行有一个文本框供用户输入。然后将其写回数据库。这很好,我需要从用户输入的每个文本框中得到总数,然后从页面前面的另一个文本框中减去。我需要得到budgetamount输入字段的总和

这是我的表格代码:

    <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中遇到的任何语法/解析错误。