使用的其他功能比修剪

时间:2015-04-10 07:47:32

标签: javascript php jquery html

我无法将变量从PHP传递到Javascript。它的工作原理如下

您可以输入您想要的特定库存量 - 即10个苹果,并根据三种不同的方法对其进行验证:

  1. 如果是数字
  2. 如果它不是空的
  3. 如果有足够的库存
  4. 的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等开头的值。

1 个答案:

答案 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会向下舍入到最接近的整数。