检查输入数量是否大于数据库中的可用数量

问题描述:

我想要做的是检查文本框输入数量是否大于数据库中的可用数量。应该显示ADD按钮的警报onclick()检查输入数量是否大于数据库中的可用数量

ADD按钮

<button type="button" name="btnSave" id="btnSave" onclick="submitdata(); resetform(); checkQty();">ADD</button> 

checkQty()功能

function checkQty() { 
    //Grab current forms input field values. 
    var txtQuantity = document.getElementById("txtQuantity").value; 
    var listItemName = document.getElementById("listItemName").value; 

    //Connect to database and verify Quantity Ordered isnt greater than Quantity In Stock. 
    $.ajax({ 
     type: "POST", 
     url: "/pms/includes/functions/qty_check.php", 
     data: 'listItemName=' + listItemName + '&txtQuantity=' + txtQuantity, 
     }).responseText;    
} 

qty_check.php

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

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

include_once("../../config.php"); 
require __DIR__."../../dbutil.php"; 

if(!empty($_POST['txtQuantity'])){$qty = $_POST['txtQuantity'];} 
if(!empty($_POST['listItemName'])){$item = $_POST['listItemName'];} 

$results = mysqli_query($connection, "SELECT * FROM purchase_items WHERE item_id= ".$_GET['listItemName']""); 

$row = mysqli_fetch_assoc($results); 
{ 
    $tb_qty=$row["avail_qty"]; 
} 

if($tb_qty < $qty){ ?> 

<script type="text/javascript"> 
    alert("Quantity exceeds the stock limit"); 
</script> 

<?php 
} 
?> 

我尝试了很多,但我无法解决这个问题。感谢任何帮助。

+0

究竟是什么错误?是你的JavaScript功能吗? – GraveyardQueen

+0

@GraveyardQueen它不显示任何错误,但警报不按预期显示。 – EKBG

+0

你从查询中得到结果吗? – GraveyardQueen

你不应该直接从ajax调用打印html。你应该回应一些你可以在前端解析得到的信息。使用

echo json_encode(['key' => 'value']) 

这里是你的代码,稍作修改。我在ajax查询中添加了dataType,并在ajax请求完成时调用了done函数。

function checkQty() { 
    //Grab current forms input field values. 
    var txtQuantity = document.getElementById("txtQuantity").value; 
    var listItemName = document.getElementById("listItemName").value; 

    //Connect to database and verify Quantity Ordered isnt greater than Quantity In Stock. 
    $.ajax({ 
    type: "POST", 
    url: "/pms/includes/functions/qty_check.php", 
    dataType: 'json', 
    data: { 
     listItemName: listItemName, 
     txtQuantity: txtQuantity 
    } 
    }).done(function(response){ 
    alert('check your console!') 
    console.log('this is the response', response.available); 
    }) 
} 

qty_check.php

<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

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

include_once("../../config.php"); 
require __DIR__."../../dbutil.php"; 

if(!empty($_POST['txtQuantity'])){$qty = $_POST['txtQuantity'];} 
if(!empty($_POST['listItemName'])){$item = $_POST['listItemName'];} 

$results = mysqli_query($connection, "SELECT * FROM purchase_items WHERE item_id= ".$_GET['listItemName']""); 

$row = mysqli_fetch_assoc($results); 
{ 
    $tb_qty=$row["avail_qty"]; 
} 
// echo out some json to send to the front end 
echo json_encode(['available' => $tb_qty < $qty]); 
?> 
+0

对不起朋友,仍然没有显示,也没有错误。我是否需要包含json库类的东西,如果是的话,该怎么做?我没有json的经验。 – EKBG

+1

如果没有错误,请检查console.log的控制台值。你不需要任何库来使用json在php或javascript中。 – synthet1c

+0

我检查浏览器控制台是否有错误。没有错误。否则,他们的任何方式来检查你所陈述的? – EKBG