2015-04-03 52 views
1

我正在尋找將我的PHP代碼中的一個變量傳遞給我的Javascript代碼來驗證數字。我正在創建一個購物車場景,其中我有一個變量'in_stock',它指定了產品的可用庫存量。如果我輸入的金額大於'in_stock'可用,我需要拋出一個錯誤。這是目前我有:通過Javascript驗證PHP變量

Java腳本

<script language="javascript"> 
    function numCheck() 
    { 
     var enteredChar = document.getElementById('add_value').value; 
     var stockavailable ="<?php echo $stock?>"; 

    //To check if a non-numerical value is entered 
    if (isNaN(enteredChar)) 
    { 
     alert("Not a Number!"); 
     return false; 
    } 
    //To check if the input is empty 
    if (enteredChar=="") 
    { 
     alert("Empty!"); 
     return false; 
    } 
    //To check if the amount entered is not greater than the amount in stock 
if (enteredChar > stockavailable) 
    { 
     alert("Not enough in stock"); 
     return false; 
    } 

} 
    </script> 

這一切發生的同時,我的PHP已經調用了數據庫,並在屏幕上返回的值。具體如下:

PHP

$product_id =(int)$_GET['product_id']; 

$username = "potiro"; 
$password = "pcXZb(kL"; 
$hostname = "rerun"; 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL"); 


//select a database to work with 
$selected = mysql_select_db("poti",$dbhandle) 
    or die("Could not select examples"); 

//execute the SQL query and return records 
$result = mysql_query("SELECT * FROM products where product_id=$product_id"); 

echo '<form name="form1">'; 
echo '<table class="Grocery-table">'; 

while($row = mysql_fetch_array($result)) 
{ 

$stock =$row['in_stock']; 
$product_id = $row['product_id']; 

    echo "<tr><td><b>Product ID</b></td>"; 
    echo "<td>"; 
    echo $product_id; 
    echo "</td></tr>"; 
    echo "<tr><td><b>Product Name</b></td>"; 
    echo "<td>"; 
    echo $row['product_name']; 
    echo "</td></tr>"; 
    echo "<tr><td><b>Unit Price</b></td>"; 
    echo "<td>"; 
    echo $stock; 
    echo "</td></tr>"; 
    echo "<tr><td><b>Unit Quantity</b></td>"; 
    echo "<td>"; 
    echo $row['unit_quantity']; 
    echo "</td></tr>"; 
    echo "<tr><td><b>In Stock</b></td>"; 
    echo "<td>"; 
    echo $row['in_stock']; 
    echo "</td></tr>"; 
    echo '<tr><td><b>Add</b></td><td><Input type="text" id="add_value" name="cart"></input></td></tr>'; 
    echo '<tr><td></td><td><input type="submit" value="Submit" onclick="return numCheck()"></td></tr>'; 
} 
echo "</table>"; 
echo "</form>"; 

mysql_close($dbhandle); 
?> 
+0

什麼,你面臨的問題??? – Ghostman 2015-04-03 05:17:03

+0

你還沒有初始化php變量$ stock。 – Dharmang 2015-04-03 05:46:56

+0

變量$ stock = $ row ['in_stock']; - 無論價值是在那一行 – JavaHater 2015-04-03 06:01:48

回答

2

你的股票價值增加一個隱藏的輸入值stock_value

echo '<tr><td><b>Add</b></td><td><Input type="text" id="add_value" name="cart" ></input><Input type="hidden" id="stock_value" name="stock_value" value="'.trim($stock).'"></input></td></tr>'; 
echo '<tr><td></td><td><input type="submit" value="Submit" onclick="return numCheck()"></td></tr>'; 

在JavaScript

<script language="javascript"> 
    function numCheck() 
    { 
     var enteredChar = document.getElementById('add_value').value; 
     var stockavailable =document.getElementById('stock_value').value; 
+0

它似乎當我添加隱藏的輸入字段的「價值」的形式爲添加是「<?PHP回聲$股票;?>」而不是空白我應該放置一個值那裏。 – JavaHater 2015-04-03 05:43:05

+1

我沒有得到你...可以簡要更多 – Ghostman 2015-04-03 05:44:42

+0

你刪除了價值名稱..謝謝 – JavaHater 2015-04-03 05:48:04