我有这样的表格:
Product
下拉列表Quantity
文字字段UnitPrice
显示TotalPrice
显示我创建了一个函数,通过在选择下拉列表时查询db来显示unitprice。现在我想通过乘以数量和UnitPrice来输入数量时显示TotalPrice。理解以下是繁殖的方式,但我如何在我的查询中应用它。我的代码也包括在内。
<script>
function showUP(str)
{
if (str=="")
{
document.getElementById("UP").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("UP").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getunitprice.php?q="+str,true);
xmlhttp.send();
}
function multiply(Quantity)
{
var totalPrice= parseFloat(document.getElementById("UP"))*Quantity;
document.getElementById("TP").innerHTML= totalPrice;
}
</script>
<table><tr>
<th width-"18%>Quantity:</th>
<td width="60%">
<input type-"text" name="Quantity" value="" onkeyup= "multiply (this.value)" size="60" />
</td>
</tr></table>
<p></p><div id="UP"><b>UnitPrice: 0.00 </b></div><p>
<p></p><div id="TP"><b>TotalPrice: 0.00 </b></div><p>
getunitprice.php
<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', '', '');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$sql="SELECT CostPrice FROM Product WHERE ProductCode = '".$q."'";
$result2 = mysql_query($sql) or die($sql."<br/><br/>".mysql_error());
while($row2 = mysql_fetch_array($result2)) {
echo "<b>UnitPrice: ".$row2['CostPrice']."";
}
mysql_close($con);
?>
答案 0 :(得分:2)
使用onBlur
代替onchange
事件。您还可以在数量文本框中使用onkeyup
事件。
<script>
function multiply(qty)
{
var totalPrice= parseFloat(document.getElementById("UP").innerHTML)*qty;
document.getElementById("TP").innerHTML= totalPrice;
}
</script>
<tr>
<th width-"18%>Quantity:</th>
<td width="60%">
<input type-"text" name="Quantity" value="" onkeyup= "multiply (this.value)" size="60" />
</td>
</tr>
<p></p><div><b>UnitPrice: <span id="UP">0.00</span> </b></div><p>
<p></p><div id="TP"><b>TotalPrice: 0.00 </b></div><p>