2017-05-24 161 views
1

对于PHP和JavaScript来说非常新颖。我试图将我从php获得的值舍入并将该值存储在JavaScript变量中,并将其显示在文本输入中。Math.round()不能在我的JavaScript中工作?

下面是我的代码:>

这是我order_stack.php文件

<div class="order Page"> 
    <h1>Order Entry</h1>  
     <form name="orderEntry" action="process_stack.php" method="post" > 
      <table> 
       <tr> 
        <th> 
         <label for="QUNTY">Quantity: </label> 
        </th> 
        <td> 
         <input name="quantity" type="text" id="QUNTY"> 
        </td> 
       </tr> 
       <tr> 
        <th> 
         <label for="APW">Approx. PCS Weight: </label> 
        </th> 
        <td> 
         <input name="approxPcsWeight" type="text" id="APW"> 
        </td> 
       </tr> 
      </table> 
       <input type="submit" value="Submit"> 
     </form> 
</div> 

这是我process_stack.php文件

<?php 
     $quantity = $_POST["quantity"]; 
     $ApxPCW = $_POST["approxPcsWeight"]; 
     $quantity1 = $_REQUEST["quantity"]; 
     $ApxPCW1 = $_REQUEST["approxPcsWeight"]; 
     $knittingLT = ($quantity1 * $ApxPCW1)/200; 
    ?> 

<fieldset class="new"> 
    <legend>Entry Tracking Details</legend> 
     <p> 
      <table> 
       <tr> 
        <th> 
         <label for ="QTY">Quantity: </label> 
        </th> 
        <td> 
         <input name="quantity" type="text" readonly="readonly" id ="QTY" value=<?php echo $quantity?>> 
        </td> 
       </tr> 
       <tr> 
        <th> 
         <label for ="APW">Approximate PCS Weight: </label> 
        </th> 
        <td> 
         <input name="Approx_PCS_weight" type="text" readonly="readonly" id="APW" value=<?php echo $ApxPCW?>> 
        </td> 
       </tr> 
       <tr> 
        <th> 
         <label for = "KLT">Knitting Lead Time: </label> 
        </th> 
        <td> 
         <input name="Knitting_Lead_time" type="text" id ="KLT" > 
         <script> 
         var data = "<?php echo $knittingLT; ?>"; 
         var roundedData = Math.round('data'); 
         document.getElementById('KLT').value = roundedData; 
         </script> 
        </td> 
       </tr> 
      </table> 
     </p> 
</fieldset> 

什么我这里是干什么的,我乘两个QuantityApprox. PCS Weight并将得到的值除以200.然后我将该值存储在$knittingLT中。

现在process_stack.php,我要更新的Knitting Lead Time(这是一个JS变量)通过取$knittingLT(这是一个PHP变量)和舍入数据并将其存储在Knitting Lead Time

当我运行这些文件时,Knitting Lead Time字段为空。

我对待这个问题的方法是错误的吗?

请帮我解决这个问题。

谢谢。

+1

使用'数学。(数据);''而不是'Math.round('data');' –

+0

是的,这解决了我的问题,感谢您的快速响应! @AlexSlipknot –

回答

4

我想问题是,你正试图围绕字符串文字“数据”。

而不是

var roundedData = Math.round('data');

var roundedData = Math.round(data);

+0

谢谢:) @ l-x –

2

你四舍五入字'data'的字符串。

而不是Math.round('data');使用Math.round(data);


此外,您通过将它放在引号之间来使PHP结果成为字符串。尽管您可以在字符串上使用Math.round,但最好将其设置为一个数字以避免混淆。

20 == '20' // true 
20 === '20' // false 

尝试:

var data = <?php echo $knittingLT; ?>;

<script> 
    var data = <?php echo $knittingLT; ?>; 
    var roundedData = Math.round(data); 
    document.getElementById('KLT').value = roundedData; 
</script> 
+0

谢谢@Randy,快速回复。它的工作完美现在:) –

2

变化Math.round('data');Math.round(data);

Math.round()想到许多不是一个字符串。

+0

谢谢@John Rey M. Baylen –

2

试试这个

var roundedData = Math.round(data); //edited this line 'data' to data 
    document.getElementById('KLT').value = roundedData; 
+0

谢谢@Prasanth –