当从mysql数据库使用下拉框时,显示一行中的多个值

时间:2014-11-11 16:51:14

标签: php jquery mysql

当我选择下拉列表中的项目时,我试图在行中显示特定项目。 为了澄清,我们可以在下拉菜单中选择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>

1 个答案:

答案 0 :(得分:1)

首先,使用mysqli。 Mysql_ *已弃用,将在以后的版本中删除。

现在我们已经开始了,我会在原始下拉选择值中添加一个“标记”字符以获取值。选择一个通常不在您的数据库中的Unicode字符,并在值中回显它,使其如下所示:

<option value="$name@$price">$name</option>

然后在上面的代码中,将值拆分为@字符并选出其后的内容以获取次要值。从长远来看,这应该可以节省数据库操作。

祝你好运!