0

以下は、HTMLフォームの私の部分です。フォームにエラーが表示されている場合は、ユーザーが選択したフィールドを選択したいと考えています。しかし、残念ながらそれは私にとってはうまくいきません。皆さん、私を助けてくれますか?

私のHTMLフォーム:

<select class="td" name="class_name">
    <option value="">--Select class--</option>
    <?php
    $class = mysql_query("SELECT * FROM e_class");

    while($res =  mysql_fetch_array($class))
    {           
        $class_name_ed = $res['class_name'];
        $class_id_ed = $res['class_id'];
        ?>
        <option value="<?php echo "$class_name_ed"; ?>" <?php 
if(isset($_POST['class_name']) == "$class_name_ed") echo 'selected = "selected"';  ?>> 
<?php echo $class_name_ed; ?></option>";
        <?php
    }
    ?>
</select>

しかし、ソースファイルを見ると、次のように表示されます..すべてのフィールドが選択されています

<select class="td" name="class_name">
    <option value="">--Select class--</option>
    <option value="Three" selected = "selected"> Three</option>";
    <option value="Four" selected = "selected"> Four</option>";
    <option value="Five" selected = "selected"> Five</option>";
</select>

更新: オプションが次のようになっている場合、どうすればよいですか:

<option value="<?php echo "$class_name_ed | $class_id_ed"; ?>" <?php if 
(isset($_POST['class_name']) && ($_POST['class_name'] == $class_name_ed)) echo 
'selected = "selected"';  ?>> <?php echo $class_name_ed; ?></option>
4

2 に答える 2

0

このコードで試してください:

if(isset($_POST['class_name']) && $_POST['class_name'] == $class_name_ed) echo 'selected';

条件に誤りがあります。isset() は true または false を返します。また、変数 $class_name_ed を "" でラップする必要はありません。それが文字列であることを確認したい場合は、次のようにキャストできます。

if(isset($_POST['class_name']) && $_POST['class_name'] == (string)$class_name_ed) echo 'selected';

selected="selected" を使用する必要はありません。オプションを選択済みとしてマークできます。三

于 2013-09-06T16:27:35.360 に答える