0

我正在使用一个onchange = "this.form.submit()"带有 php 的选择框和一个表格,它根据选择显示数据,嗯,它工作正常,但是当我选择一个选项并刷新页面时,选择框总是显示为第一个元素的值。我希望它显示我选择的元素。这是代码

<form action="#" >
<select name="proyect" id="proyect" onchange = "this.form.submit()">
<?php
$SQL = "SELECT id  FROM categories ORDER BY nomCategories ASC";
            $result = mysql_query($SQL);

while ($row = mysql_fetch_array($result)) {
?>

<option value="<?php echo $row["id"];?>"><?php echo $row["nomCategories"];?></option>
<?php
}
?>

谢谢!

4

1 回答 1

0

你应该做同样的viewstate事情ASP.NET。为此,您应该将选定的索引发送到服务器。有一些方法,例如:
创建一个<input type='hidden' ... />并将选定的索引设置value为这个隐藏输入的属性(注意这个元素必须创建到form元素中)在这个阶段你可以通过或
检索索引 当页面呈现时你可以设置此索引更新(详细) 将您的 HTML 和 PHP 代码更改为:$_GET$_POSTselect box

<form action="yourpage.php" method="POST" >
    <input type="hidden" name="pindex" value="" />
    <select name="proyect" id="proyect" onchange = "mysubmit(this.parentNode)">
    <?php
    $SQL = "SELECT id  FROM categories ORDER BY nomCategories ASC";
                $result = mysql_query($SQL);

    while ($row = mysql_fetch_array($result)) {
    ?>

    <option value="<?php echo $row["id"];?>"><?php echo $row["nomCategories"];?> </option>
    <?php
    }
    ?>
    </select>
</form>

<script type='javascript'>
    document.getElementById("proyect").selectedIndex = 
    <?php
    if( isset( $_POST['pindex']))
        echo $_POST['pindex'];
    else
        echo '0';
    ?>

    function mysubmit(form)
    {
        document.getElementsByName("pindex")[0].value = document.getElementById("proyect").selectedIndex ;
        form.submit()
    }
</script>
于 2013-07-21T10:06:34.720 回答