0
<div class="select_list">
    <div class="labels">Category:</div>
    <?php
        if(!isset($_POST['postbtn)){
            echo "<script>$(document).ready(function(){
                $('.category').val(0);
            })
            </script>";
        }
        echo "<select name='category' id='catg_list' class='list_catg'>
            <option value='0'";
                if(isset($_POST['category']) && $_POST['category']=='0'){
                    echo "selected";
                }
            echo">none</option>";
            $query = mysql_query("SELECT id, name from table1");
            while($query_fetch = mysql_fetch_assoc($query)){
                echo "<option value='".$query_fetch['id']."'";
                if(isset($_POST['category']) && $_POST['category']==$query_fetch['id'])
                {
                    echo "selected";
                }
                echo ">".$query_fetch['name']."</option>";
            }
            echo "</select>";
    ?>
</div>

上面代码的问题是提交完成后被选择的元素保持选中状态。成功提交表单后,我需要选择选项返回“无”。怎么可能呢?

4

2 回答 2

0

您的行中有语法错误:

if(!isset($_POST['postbtn)){

将其更改为:

if(!isset($_POST['postbtn'])){

我猜你没有提到的一些事情:你在你发布的代码之上验证你的脚本,并且你想要 - 如果脚本被成功验证 - 选择“无”选项。

$selected_value = $validation ? $_POST['category'] : false; 

只有验证正确时才会设置该值,否则将设置为假;

<?php
echo "<select name='category' id='catg_list' class='list_catg'>
        <option value='0'"; 
//CHANGE
            if($selected_value == 0){ //Or if($selected_value === FALSE ||$selected_value === 0)
                echo "selected";
            }
        echo">none</option>";
        $query = mysql_query("SELECT id, name from table1");
        while($query_fetch = mysql_fetch_assoc($query)){
            echo "<option value='".$query_fetch['id']."'";
//CHANGE
            if($selected_value !== FALSE && $selected_value == $query_fetch['id'])
            {
                echo "selected";
            }
            echo ">".$query_fetch['name']."</option>";
        }
        echo "</select>";
?>
于 2013-10-22T07:01:45.100 回答
0

将您的代码简化如下以完成所需的任务。

    $category = isset($_POST['category']) ? $_POST['category'] : 0;

    $array["0"]="none";
    $query = mysql_query("SELECT id, name from table1");
    while($query_fetch = mysql_fetch_assoc($query)){
        $id = $query_fetch['id'];
        $array[$id] =  $query_fetch['name'];
    }

    echo "<select name='category' id='catg_list' class='list_catg'>";
    foreach($array as $id=>$name) {
        $selected = $category==$id ? "selected" : "";
        echo "<option value='".$id."' ".$selected." >".$name."</option>";
    }
    echo "</select>";
于 2013-10-22T07:15:31.413 回答