0

PHP で (コンボ ボックス) を選択し、1 つを選択した後、2 つ目のボックスにデータベースからのデータを入力します。問題は、ページのリロード後に最初のコンボ ボックスから選択内容を表示する方法です。次のコードがあります。

    <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>
4

1 に答える 1

3

値を取得するメソッドはform、属性内のタグで定義されていますmethod

あなたの場合、それを取得してof オプションecho $_POST['category']と比較する必要がありますname

あなたのコードは完璧ではありません。以下を見てください: :)

<?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>
于 2013-10-25T12:23:14.120 に答える