我无法将变量从PHP传递到Javascript。它的工作原理如下
您可以输入您想要的特定库存量 - 即10个苹果,并根据三种不同的方法对其进行验证:
的Javascript
function numCheck()
{
var stockavailable =document.getElementById('stock_value').value;
var enteredChar = document.getElementById('add_value').value;
if (isNaN(enteredChar))
{
alert("Not a Number!");
return false;
}
if (enteredChar=="")
{
alert("Empty!");
return false;
}
if (enteredChar > stockavailable)
{
alert("not enough stock");
return false;
}
}
PHP
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><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>';
}
echo "</table>";
echo "</form>";
出于某种原因, trim 功能不允许我输入不同支配的值。例如,如果股票是1200 - 我只能输入以1而不是2,3,4,5等开头的值。
答案 0 :(得分:1)
"2" > "10"
,但2 < 10
。看到这里的问题?
您需要将值从输入字段转换为数字,因为默认的.value
将返回一个字符串:
var stockavailable = parseInt(document.getElementById('stock_value').value, 10);
var enteredChar = parseInt(document.getElementById('add_value').value, 10);
你可以使用parseInt(num, 10)
表示整数,或parseFloat(num)
表示浮点数,两者都会返回一个双浮点数,但是parseInt会向下舍入到最接近的整数。