Sub Total未从数据库获取更改的值到输入框

时间:2016-11-12 16:13:21

标签: javascript php html mysql

我在尝试从java脚本向数据库添加项目时更新子总数。但是,目前它在显示添加项目时的第一笔金额而不是更新。 (但是当从phpMyAdmin运行查询时,它可以正常工作)

enter image description here

enter image description here

java脚本代码

function showSubTotal() {
     <?php $resultT=mysqli_query($connection, "SELECT SUM(amount) FROM sales_temp");
              $rowT = mysqli_fetch_row($resultT);
              ?>
        document.getElementById("txtSubTotal").setAttribute('value','');
        document.getElementById("txtSubTotal").setAttribute('value',"<?php echo $rowT[0]; ?>");
  }

HTML代码

<input name="txtSubTotal" type="text" id="txtSubTotal" size="15" / >

<button type="button" name="btnSave" id="btnSave" onclick="submitdata(); check_qty(); showSubTotal();">ADD</button></td>

4 个答案:

答案 0 :(得分:1)

问题是,当您使用PHP声明该函数时,再次使用PHP无法刷新该函数...因为PHP所做的一切都在页面加载之前发生,因此,举个例子说:< / p>

function showSubTotal() {
 <?php $resultT=mysqli_query($connection, "SELECT SUM(amount) FROM sales_temp");
          $rowT = mysqli_fetch_row($resultT);
          ?>
    document.getElementById("txtSubTotal").setAttribute('value','');
    document.getElementById("txtSubTotal").setAttribute('value',"<?php echo $rowT[0]; ?>");

}

来自第一个查询的$ rowT [0] = 10的'value',它总是10,因为这是PHP在检查页面加载时从数据库中读取的内容。你将不得不使用像jquery或ajax这样的东西来读取包含该值的另一​​个php文件的内容(mysqli_fetch_row)。

PHP字面上被命名为超文本预处理器,意味着在将html打印给用户之前处理的所有内容。 (在页面加载完毕之前)

尝试尝试:https://api.jquery.com/jquery.get/

答案 1 :(得分:0)

ShowSubTotal()只会在页面加载时带来值。动态操作不会进行任何更改,因为php需要服务器请求才能运行。

您应该通过动态请求(ajax)调用来提供小计。 要么: 使用javascript对值进行求和,并在txtSubTotal字段中设置值。如果您选择此选项,请记住不要在服务器端处理上依赖此值,因为它可能会被用户掺杂。

答案 2 :(得分:0)

我找到了解决方案,添加do_onload(id)来计算每次刷新后触发的loadComplete事件总数(也在删除后)

function do_onload(id)
{
//alert('Simulating, data on load event')

var s = $("#list").jqGrid('getCol', 'amount', false, 'sum');
jQuery("#txtSubTotal").val(s);
}

并相应更改了phpgrid代码。

$opt["loadComplete"] = "function(ids) { do_onload(ids); }";
$grid->set_options($opt);

答案 3 :(得分:0)

试试这段代码

 $("#btnSave").click(function(){
  $.ajax({
        url : file_url.php,
        type : 'post',
        data : {                
            get_subtotal:"subtotal",
        },
        success : function( response ) {
            alert(response);
            $("#txtSubTotal").val(response );
        },
        error: function(response) {  
            console.log(response);
        }
    });
});

file_url.php

     if(isset($_POST['get_subtotal'])){
          $resultT=mysqli_query($connection, "SELECT SUM(amount) FROM sales_temp");
          $rowT = mysqli_fetch_row($resultT);
          echo $rowT[0];
     }