2013-10-22 24 views
0
<div class="select_list"> 
    <div class="labels">Category:</div> 
    <?php 
     if(!isset($_POST['postbtn)){ 
      echo "<script>$(document).ready(function(){ 
       $('.category').val(0); 
      }) 
      </script>"; 
     } 
     echo "<select name='category' id='catg_list' class='list_catg'> 
      <option value='0'"; 
       if(isset($_POST['category']) && $_POST['category']=='0'){ 
        echo "selected"; 
       } 
      echo">none</option>"; 
      $query = mysql_query("SELECT id, name from table1"); 
      while($query_fetch = mysql_fetch_assoc($query)){ 
       echo "<option value='".$query_fetch['id']."'"; 
       if(isset($_POST['category']) && $_POST['category']==$query_fetch['id']) 
       { 
        echo "selected"; 
       } 
       echo ">".$query_fetch['name']."</option>"; 
      } 
      echo "</select>"; 
    ?> 
</div> 

的問題與上面的代碼,提交完成後,所選擇的元素保持選中狀態。當表單提交成功時,我需要select選項返回'none'。如何做到這一點?清除選擇選項後成功提交

+0

看起來您正在檢查默認值是否設置爲0?爲什麼不在默認情況下將該值設置爲0。這樣,無論頁面加載時它將被設置爲無 – Chitowns24

+0

實際上,我有更多的字段,如表單中的文本字段,需要在提交之前正確填寫。現在,如果有人在其中一個文本框中輸入了錯誤的數據,應該停止提交,但在這種情況下,如果用戶選擇了一個元素,則該元素應保持選中狀態,並且只有在提交沒有錯誤時才應重置爲「無」。 –

回答

0

您的線路的語法錯誤:

if(!isset($_POST['postbtn)){ 

將其更改爲:

if(!isset($_POST['postbtn'])){ 

我猜有些事情你沒有提到: 您驗證腳本在您發佈的代碼上方,並且您希望 - 如果腳本已成功驗證 - 則選擇「無」選項。

$selected_value = $validation ? $_POST['category'] : false; 

只有驗證是正確的,值纔會被設置,否則它將被設置爲false;

<?php 
echo "<select name='category' id='catg_list' class='list_catg'> 
     <option value='0'"; 
//CHANGE 
      if($selected_value == 0){ //Or if($selected_value === FALSE ||$selected_value === 0) 
       echo "selected"; 
      } 
     echo">none</option>"; 
     $query = mysql_query("SELECT id, name from table1"); 
     while($query_fetch = mysql_fetch_assoc($query)){ 
      echo "<option value='".$query_fetch['id']."'"; 
//CHANGE 
      if($selected_value !== FALSE && $selected_value == $query_fetch['id']) 
      { 
       echo "selected"; 
      } 
      echo ">".$query_fetch['name']."</option>"; 
     } 
     echo "</select>"; 
?> 
0

簡化您的代碼以執行所需的任務。

$category = isset($_POST['category']) ? $_POST['category'] : 0; 

    $array["0"]="none"; 
    $query = mysql_query("SELECT id, name from table1"); 
    while($query_fetch = mysql_fetch_assoc($query)){ 
     $id = $query_fetch['id']; 
     $array[$id] = $query_fetch['name']; 
    } 

    echo "<select name='category' id='catg_list' class='list_catg'>"; 
    foreach($array as $id=>$name) { 
     $selected = $category==$id ? "selected" : ""; 
     echo "<option value='".$id."' ".$selected." >".$name."</option>"; 
    } 
    echo "</select>";