Onchange Select Box和php

时间:2013-07-21 09:57:44

标签: php javascript html

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

<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
}
?>

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该与viewstate中的ASP.NET相同。为此,您应该将选定的索引发送到服务器。有一些方法可以:
创建<input type='hidden' ... />并将所选索引设置为此隐藏输入的属性value(请注意,必须在form元素中创建此元素)
在此阶段,您可以按$_GET$_POST检索索引 在页面呈现时,您可以将此索引设置为select box
UPDATE(详细)
将您的HTML和PHP代码更改为:

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