2013-07-21 99 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