2016-11-30 5 views
0

私がしたいことは、テキストボックスの入力数量がデータベースの使用可能数量より大きいかどうかをチェックすることです。 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

答えて

1

ajax呼び出しからhtmlを直接出力しないでください。あなたは、情報を得るためにフロントエンドで解析できるいくつかのjsonをエコーアウトする必要があります。

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

ここにあなたのコードを少し修正します。私はdataTypeをajaxクエリに追加し、done関数を追加しました。この関数は、ajax要求が完了したときに呼び出されます。

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

関連する問題