2017-05-24 13 views
1

非常にphpとJavaScriptの新機能です。私はPHPから取得した値を丸め、その値をJavaScript変数に格納してテキスト入力に表示しようとしています。以下はJavaScriptがMath.round()で動作していませんか?

私のコードです:>

これは私の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に、私は(PHPの変数である)$knittingLTを取ることによって(JS変数である)Knitting Lead Timeを更新し、データを切り上げると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

素早い対応のために@ランディありがとう。その完璧な今すぐ:) –

2

変更Math.round('data');Math.round()

Math.round(data);に数字ではない文字列を期待しています。

+0

ありがとう@ジョンレイM.ベイレン –

2

は `数学を使用し、この

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

ありがとう@Prasanth –

関連する問題