当下拉列表中的一个项目被选中时,我试图在行中显示一个特定的项目。为了澄清,假设我在下拉菜单中选择了item1
,当选择item1
时,我希望item1
的价格显示在页面的另一个字段中。
ps。我正在尝试制作一个连接到MYSQL数据库的库存和订购表。
提前谢谢。
这是我的PHP代码。
<?php
function dropdown( $alcohol, array $options, $selected=null )
{
/*** begin the select ***/
$dropdown = '<select name="'.$alcohol.'" id="'.$alcohol.'">'."'n";
$selected = $selected;
/*** loop over the options ***/
foreach( $options as $key=>$option )
{
/*** assign a selected value ***/
$select = $selected==$key ? ' selected' : null;
/*** add each option to the dropdown ***/
$dropdown .= '<option
`value="'.$key.'"'.$select.'>'.$option.'</option>'."'n";
}
/*** close the select ***/
$dropdown .= '</select>'."'n";
/*** and return the completed dropdown ***/
return $dropdown;
}
?>
<form>
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('');
$sql = "SELECT alcohol FROM alcohol ";
$result = mysql_query($sql);
echo "<select name='alcohol'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['alcohol'] . "'>" . $row['alcohol'] . "</option>";
}
echo "</select>";
?>
</form>
//下面的新东西//
<form id="data" class="form_alcohol" role="form" method="post" action="connect.php">
<INPUT TYPE = "Submit" Name = "Submit" VALUE = "Submit">
<select size="1" name="alcohol">
<option value="">--- Select Alcohol ---</option>
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('');
$sql = "SELECT alcohol FROM alcohol";
$result1 = mysql_query($sql);
while ($row = mysql_fetch_array($result1)) {
echo "<option value='" . $row['alcohol'] . "'>" . $row['alcohol'] . "</option>";
}
$dropdown1 = empty($_POST['alcohol'])? die ("ERROR: Select from dropdown") : mysql_escape_string($_POST['alcohol']);
echo "</select>";
?>
<?php
if(isset($_POST['Submit'])) {
mysql_connect('localhost', 'root', '');
mysql_select_db('');
$sql = "SElECT * FROM alcohol where '$dropdown1' = alcohol";
$result = mysql_query($sql) or die(mysql_error());
?>
<table>
<td> alcohol </td> <td> price </td> <td> amount in stock </td>
<?php
while ($row = mysql_fetch_array($result)) {
echo "<tr><td>".$row['alcohol']."</td><td>".$row['price']."</td><td>".$row['quantity_in_stock']."</td>";
}
}
?>
</table>
首先,使用mysqli。Mysql_*已弃用,并将在未来的版本中删除。
既然我们已经解决了这个问题,我会在原始的下拉选择值中添加一个"标记"字符来获得值。选择一个通常不会出现在数据库中的Unicode字符,并在值中呼应它,使其看起来像这样:
<option value="$name@$price">$name</option>
然后在上面的代码中,将@字符处的值拆分,并找出后面的值,以获得第二个值。从长远来看,这将为您节省一个数据库操作。
祝你好运!