2013-10-22 21 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>";