【问题标题】:Onchange Selectbox and phpOnchange 选择框和 php
【发布时间】:2013-07-21 18:47:05
【问题描述】:

我正在使用一个带有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
}
?>

谢谢!

【问题讨论】:

  • 你的问题还不错,但你没有提供任何代码?人们可以如何帮助您?

标签: php javascript html


【解决方案1】:

您应该在ASP.NET 中执行与viewstate 相同的操作。为此,您应该将选定的索引发送到服务器。有一些方法,例如:
创建一个&lt;input type='hidden' ... /&gt;并将选中的索引设置为这个隐藏输入的属性value(注意这个元素必须创建到form元素中)
在这个阶段您可以通过$_GET 或$_POST 检索索引 在页面呈现时,您可以将此索引设置为select box
更新(详细)
将您的 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>

【讨论】:

  • @user2553299:在第一次页面加载时PHP回显0,但是当用户在选择框中选择一个项目时,PHP回显$_POST['pindex']
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多