php 如何在php的组合框中显示选定的值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19589550/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 19:45:10  来源:igfitidea点击:

how to display the selected value from combo box in php

phphtml

提问by B. Nir

I have select (combo boxes) in PHP and after one was selected i fill the second one with data from the database. the question is how to display my selection from the first combo box after the page reload. I have the following code:

我在 PHP 中选择了(组合框),在选择了一个后,我用数据库中的数据填充了第二个。问题是如何在页面重新加载后从第一个组合框中显示我的选择。我有以下代码:

    <select name="category" id="category" maxlength="30" onchange="this.form.submit();">
                                <option value =""></option>
                            <?php
                                require_once("config.php");
                                // Connect to server
                                $con = mysql_connect($ServerAddress,$ServerUser,$ServerPassword);
                                //choose DB
                                mysql_select_db($DbName, $con);                             
                                $sql = "SELECT * FROM `category` ORDER BY `name`";
                                $res = mysql_query($sql);
                                while ($row1 = mysql_fetch_array($res)){
                                    echo '<option value ="'.$row1['name'].'">'.$row1['name'].'</option>';

                                }       
                            ?>
                            </select>
                        </span>
<label>race:</label>
<span>
                            <select name="race" id="race" maxlength="30" >
                                <option value =""></option>
                            <?php
                                if (isset($_POST['category'])) {
                                    $var = $_POST['category'];

                                    // Connect to server
                                    $con = mysql_connect($ServerAddress,$ServerUser,$ServerPassword);
                                    //choose DB
                                    mysql_select_db($DbName, $con);     
                                    $sql = "SELECT * FROM `race` WHERE `category`='" . sqlSecure($var) . "'ORDER BY `race`";                                
                                    $res = mysql_query($sql);
                                    while ($row1 = mysql_fetch_array($res)){
                                        echo '<option value ="'.$row1['race'].'">'.$row1['race'].'</option>';
                                    }   
                                }
                            ?>
                            </select>

回答by Spell

Method how to get values are defined in formtag in attribute method

方法如何获取form在属性中的标签中定义的值method

In your case you need to get echo $_POST['category']and compare it with nameof option

在您的情况下,您需要获取echo $_POST['category']并将其与name选项进行比较

Your code are not perfect. Look follows: :)

你的代码并不完美。看如下: :)

<?php
require_once("config.php");
// Connect to server
$con = mysql_connect($ServerAddress, $ServerUser, $ServerPassword);
//choose DB
mysql_select_db($DbName, $con);

?>
<select name="category" id="category" maxlength="30" onchange="this.form.submit();">
    <option value=""></option>
    <?php
    $val = $_POST['category']?:'';

    $sql = "SELECT * FROM `category` ORDER BY `name`";
    $res = mysql_query($sql);
    while ($row1 = mysql_fetch_array($res)) {
        $selected = ($val == $row1['name'] ? 'selected="selected"' : '');
        echo '<option value ="' . $row1['name'] . '" '. $selected .'>' . $row1['name'] . '</option>';

    }
    ?>
</select>
</span>
<label>race:</label>
<span>
<select name="race" id="race" maxlength="30">
    <option value=""></option>
    <?php
    if (isset($_POST['category'])) {
        $var = $_POST['category'];
        $sql = "SELECT * FROM `race` WHERE `category`='" . sqlSecure($var) . "'ORDER BY `race`";
        $res = mysql_query($sql);
        while ($row1 = mysql_fetch_array($res)) {
            echo '<option value ="' . $row1['race'] . '">' . $row1['race'] . '</option>';
        }
    }
    ?>
</select>