单击提交按钮

时间:2016-11-14 17:07:04

标签: javascript php html

点击txtSubTotal按钮后,我试图清除PROCEED文本框。尽管我尝试了一些代码示例,但它仍无法正常工作,即使在SO中也是如此。

btnProceed / HTML

<input type="submit" name="btnProceed" id="btnProceed" value="PROCEED" onclick="clearSubTotal();"/>

clearSubTotal()/ JS

function clearSubTotal() {
$('#txtSubTotal').val('');
}

txtSubTotal

<input name="txtSubTotal" type="text" id="txtSubTotal" size="15" value="<?php 
$sql=mysqli_query($connection,"select sum(amount) from sales_temp");
$row = mysqli_fetch_array($sql);
echo $row[0];
?>"/>

形式/ HTML

 <form id="manageSalesForm" name="manageSalesForm" method="post" action="<?php echo BASE_URL?>includes/functions/sales_functions.php">

enter image description here

感谢你的帮助。

注意:在按下第二个按钮时发现文本框清除。如何正确设置第一个按钮?

添加按钮/ JS

     function submitdata() {
     var listItemName  = document.getElementById("listItemName").value;
     var listStock = document.getElementById("listStock").value;
     var txtUnitPrice = document.getElementById("txtUnitPrice").value;
     var txtQuantity = document.getElementById("txtQuantity").value;
     var listCustomer = document.getElementById("listCustomer").value;
     var txtReceiptNo = document.getElementById("txtReceiptNo").value;
     var TheDate = document.getElementById("TheDate").value;

     // Returns successful data submission message when the entered information is stored in database.
     var dataString = {listItemName:listItemName, listStock: listStock, txtUnitPrice: txtUnitPrice, txtQuantity: txtQuantity, listCustomer: listCustomer, txtReceiptNo: txtReceiptNo};
     if (listItemName == '' || listStock == ''|| txtUnitPrice == ''|| txtQuantity == ''|| listCustomer == ''|| txtReceiptNo == ''|| TheDate == '') {
     salesitemsAddFail();
     } 
     else {
                // AJAX code to submit form.
                $.ajax({
                type: "POST",
                url: "/pms/includes/functions/sales_temp_functions.php",
                data: dataString,
                cache: false,
                success: function(html) {    

     //reload the sales datagrid once add the item details to temporary table (sales_temp)
     $('#list').trigger("reloadGrid",[{page:1}]);
         window.location.reload();
                }
                });
            }
}
$('#btnProceed').click(function(event) {
  event.preventDefault(); // stops form submission
$('#txtSubTotal').val('');
});

添加按钮/ HTML

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

sales_functions.php

<?php

//Start the Session
       if(!isset($_SESSION)) 
       { 
           session_start(); 
       } 

include ("/../../pages/sales.php");
include("/../../dbutil.php");

 if(isset($_POST['listCustomer'])){ $customer = $_POST['listCustomer'];}
 if(isset($_POST['staff'])){ $user = $_POST['staff']; }

if(isset($_POST['btnProceed'])){

$result=mysqli_query($connection, 
"INSERT INTO sales(cus_id,item_id,stock_id,receipt_no,qty,unit_price,amount,user_id,purchase_id) 
 SELECT C.cus_id, I.item_id, S.stock_id, $receipt_no, ST.qty, ST.unit_price, ST.amount, U.id, P.purchase_id 
FROM customers C, items I, stock S, sales_temp ST, users U, purchase_items P 
WHERE ST.staff='$user' 
AND C.customer_name='$customer' 
AND I.item_name=ST.item_name 
AND S.stock_code=ST.stock_code 
AND ST.purchase_id=P.purchase_id");


//Update available qty from purchase_items relevant only to the logged in user(sales_temp table may have records from multiple users)
$resultUpdate=mysqli_query($connection, "UPDATE purchase_items P INNER JOIN sales_temp ST ON (P.purchase_id = ST.purchase_id) SET P.avail_qty = (P.avail_qty - ST.qty) WHERE ST.staff='$user'");

//Delete records relevant only to current user. Here 'WHERE' clause use to prevent deleting other user's records.
$resultDelete=mysqli_query($connection, "DELETE FROM sales_temp WHERE staff='$user'");


if (!$result) {
  printf("Errormessage: %s\n", mysqli_error($connection));
}

// use exec() because no results are returned
if ($result) {

}
else
{
  echo '<script type="text/javascript">',
 'salesAddFail();',
'</script>';
}}
?>

3 个答案:

答案 0 :(得分:2)

单击提交按钮后,表单正在提交,并且您的自定义功能未被执行。

从输入元素中删除 onclick 编辑jQuery代码

public static IEnumerable<SelectListItem> PossibleMonths(string defaultValue)
{
        if (defaultValue == null)
           defaultValue = "";

        return new List<SelectListItem>()
        {
            new SelectListItem() { Text = "1 - Jan", Value = "1", Selected = (defaultValue == "1") },
            new SelectListItem() { Text = "2 - Feb", Value = "2", Selected = (defaultValue == "2") },
            new SelectListItem() { Text = "3 - Mar", Value = "3", Selected = (defaultValue == "3") },
            new SelectListItem() { Text = "4 - Apr", Value = "4", Selected = (defaultValue == "4") },
            new SelectListItem() { Text = "5 - May", Value = "5", Selected = (defaultValue == "5") },
            new SelectListItem() { Text = "6 - Jun", Value = "6", Selected = (defaultValue == "6") },
            new SelectListItem() { Text = "7 - Jul", Value = "7", Selected = (defaultValue == "7") },
            new SelectListItem() { Text = "8 - Aug", Value = "8", Selected = (defaultValue == "8") },
            new SelectListItem() { Text = "9 - Sep", Value = "9", Selected = (defaultValue == "9") },
            new SelectListItem() { Text = "10 - Oct", Value = "10", Selected = (defaultValue == "10") },
            new SelectListItem() { Text = "11 - Nov", Value = "11", Selected = (defaultValue == "11") },
            new SelectListItem() { Text = "12 - Dec", Value = "12", Selected = (defaultValue == "12") },
        };
}

您可以在浏览器中试用:https://jsfiddle.net/hy7jwg8m/1/

答案 1 :(得分:1)

这对我来说非常合适。点击提交后,它可能适合您,但同时页面将被重定向到新操作

答案 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);