对于php和JavaScript来说,这是一个新手。我试图将我从php获得的值四舍五入并将该值存储在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>
我在这里做的是,我将Quantity
和Approx. PCS Weight
相乘并将获得的值除以200.然后我将值存储在$knittingLT
。
现在在process_stack.php中,我想通过取Knitting Lead Time
(这是一个php变量)来更新$knittingLT
(这是一个JS变量)并将数据四舍五入并存储在{ {1}}。
当我运行文件时,Knitting Lead Time
字段为空。
我对这个问题的态度是错误的吗?
请帮助我解决这个问题。
感谢。
答案 0 :(得分:4)
我想问题是你正试图围绕字符串字面数据&#39;数据&#39;。
而不是
var roundedData = Math.round('data');
写
var roundedData = Math.round(data);
答案 1 :(得分: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>
答案 2 :(得分:2)
将Math.round('data');
更改为Math.round(data);
Math.round()
期望一个数字不是字符串。
答案 3 :(得分:2)
试试这个
var roundedData = Math.round(data); //edited this line 'data' to data
document.getElementById('KLT').value = roundedData;