【发布时间】:2012-08-12 16:07:39
【问题描述】:
以下是我一直在研究的一个订单表格,用于了解 html、javascript、php 和 mysql 如何相互交互。
https://www.dropbox.com/s/7zpok07w1bygu60/Screen%20Shot%202012-08-12%20at%2010.28.41%20AM.png
此表的目标是让用户在数量字段中输入一个数字,并且在更改时,javascript 将自动更新该特定产品的总成本。关键是我希望从 mysql 数据库表中填充列表。
这是我正在使用的 html、javascript 和 php 代码。
HTML
<table>
<tr>
<td>
Product
</td>
<td>
Description
</td>
<td>
Quantity
</td>
<td>
Price
</td>
<td>
Total Cost
</td>
</tr>
<?php include("pop_prodlist.php"); ?>
<tr>
<td>Totals</td>
<td></td>
<td>TotalQuantity</td>
<td></td>
<td>TotalCost</td>
</tr>
</table>
PHP
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['P_Name'] . "</td>";
echo "<td>" . $row['P_Description'] . "</td>";
echo "<td>
<input type='text' size='3' name='" . $row['P_Name'] . "_Quantity'
onChange='calcCost()'/>
</td>";
echo "<td>" . $row['P_Cost'] . "</td>";
echo "<td id='" . $row['P_Name'] . "_Cost'>0.00</td>";
echo "</tr>";
}
Javascript calcCost() 函数
function calcCost()
{
var theForm = document.forms['productform'];
/*
COMMENTED OUT FOR TIME BEING
var pquan = theForm.elements[productname + '_Quantity'].value;
var costperquan = '15.99';
var ptotalcost = costperquan * pquan;
*/
var divobj = document.getElementById('Basketball_Cost');
divobj.innerHTML = "helloworld";
}
我目前遇到的问题是,我无法弄清楚如何根据 mysql 查询确定的产品名称,从 php 脚本回显中将唯一参数放入 javascript 函数 calcCost 中。
另外,为了教育自己,我很好奇更好的解决方案会是什么/看起来像什么。我怀疑这是解决问题的最优雅的解决方案,我希望看到一些更好的解决方案。
【问题讨论】:
-
一些事情:1) 除非您正在打印 HTML 代码,否则您应该使用
htmlspecialchars转义动态输出。 2)古老的mysql_*功能不再维护,社区开始deprecation process。相反,您应该了解准备好的语句并使用PDO 或MySQLi。如果你想学习,here is a quite good PDO-related tutorial. -
@DCoder:非常好,其实我也想提一下,太好了! :)
标签: php javascript mysql html