2013-07-21 85 views
0

我使用的选择框onchange = "this.form.submit()"和一个php表显示数据根据选择,以及它工作正常,但是当我选择一个选项和页面刷新时,选择框总是显示为值第一个元素。我希望它显示我选择的元素。这是密码Onchange选择框和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 
} 
?> 

谢谢!

+0

你的问题不错,但你没有提供任何代码?人们可以如何帮助你? – 2013-07-21 10:01:41

回答

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

它总是显示“echo'0'”:S – Peluco

+0

@ user2553299:在第一次加载PHP回声0时,但是当用户在选择框中选择一个项目时,PHP回声'$ _POST ['pindex ']' –

+0

okey,它的工作原理:) – Peluco