根据下拉列表获取值

时间:2011-03-10 16:50:46

标签: php sql drop-down-menu

我有一个项目的下拉列表。我想要做的是获取项目数量,剩余数量和调度项目值,这取决于下拉列表中的值。

我有这段代码:

<form method="post" action="restore_stocks.php">
<table>
<tr>
<td>Item Name:</td>
<td><select name="itemname">
<?php
  $item="SELECT item_name FROM stocks";
  $itemresult = @mysql_query($item)or die ("Error in query: $query. " .                                     mysql_error());
  while($row=@mysql_fetch_array($itemresult)){
echo "<OPTION VALUE=".$row['item_name'].">".$row['item_name']."</option>";
}
?>
</select></td></tr>
<tr>
<td>Item Quantity:</td>
<td><?php 
$row = mysql_fetch_object($itemresult);

echo $row->item_quantity; ?></td></tr>
<tr>
<td>Remaining Quantity:</td>
<td><?php echo $row->rem_quantity; ?></td></tr>
<tr>
<td>Stocks Dispatched:</td>
<td><?php echo $row->stocks_dispatched; ?></td></tr>
<tr>
<td>Add Stocks:</td>
<td><input name="addstocks" type="text" size="25" maxlength="25" /></td></tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" id="Submit" value="Restore" /></td>
</tr>
</table>
</form>

我真的不知道如何启动代码,因为我对这种方法不熟悉。如果你能帮助我,我非常感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

这有效:jist是页面使用ajax来调用脚本,该脚本将提供所需值的XML,然后相应地填充这些字段。 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<script>
function updateFields(itemname){
    var xmlhttp;
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)
    {
    var xmlDoc=xmlhttp.responseXML;
    var iQdata=xmlDoc.documentElement.getElementsByTagName("ITEMQUANTITY");
    var rQdata=xmlDoc.documentElement.getElementsByTagName("REMAININGQUANTITY");
    var sDdata=xmlDoc.documentElement.getElementsByTagName("STOCKSDISPATCHED");
    var iQ=iQdata[0].firstChild.nodeValue;
    var rQ=rQdata[0].firstChild.nodeValue;
    var sD=sDdata[0].firstChild.nodeValue;
    document.getElementById("itemQuantity").innerHTML=iQ;
    document.getElementById("remainingQuantity").innerHTML=rQ;
    document.getElementById("stocksDispatched").innerHTML=sD;
    }
  }
xmlhttp.open("GET","quantity_script.php?itemname="+itemname,true);
xmlhttp.send();

}
</script>

<form method="post" action="restore_stocks.php">
<table>
<tr>
<td>Item Name:</td>
<td><select name="itemname" onchange="updateFields(this.value)">
<?php
  $item="SELECT item_name FROM stocks";
  $itemresult = @mysql_query($item)or die ("Error in query: $query. " .mysql_error());
  while($row=@mysql_fetch_array($itemresult)){
echo "<OPTION VALUE=".$row['item_name'].">".$row['item_name']."</option>";
}
?>
</select></td></tr>
<tr>
<td>Item Quantity:</td>
<td><div id="itemQuantity"></div></td></tr>
<tr>
<td>Remaining Quantity:</td>
<td><div id="remainingQuantity"></div></td></tr>
<tr>
<td>Stocks Dispatched:</td>
<td><div id="stocksDispatched"></div></td></tr>
<tr>
<td>Add Stocks:</td>
<td><input name="addstocks" type="text" size="25" maxlength="25" /></td></tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" id="Submit" value="Restore" /></td>
</tr>
</table>
</form>

</body>
</html>

然后你还会在你的网站上创建一个“quantity_script.php”的脚本,如下所示:

<?php
//include your DB connection info
$itemname=mysql_real_escape_string($_POST["itemname"]);
$item="SELECT ".$itemname." FROM stocks";
$itemresult = mysql_query($item);
$row=mysql_fetch_assoc($itemresult);
header('Content-type: text/xml');
echo "<ROOT>";
echo "<ITEMQUANTITY>".$row["item_quantity"]."</ITEMQUANTITY>";
echo "<REMAININGQUANTITY>".$row["rem_quantity"]."</REMAININGQUANTITY>";
echo "<STOCKSDISPATCHED>".$row["stocks_dispatched"]."</STOCKSDISPATCHED>";
echo "</ROOT>";
?>