2017-05-24 71 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 –

相關問題