2010-10-07 19 views
1

我有1页面显示一个表格,其中包含动态填充的各种下拉列表。PHP:在新页面中保留下拉字段

SNIPPIT

<td valign="top"> 
        <select name="status"> 
         <option></option> 

         <?php 
          foreach($statuslst as $status){ 
           echo '<option value=' . $status[0] . '>' . $status[1] . '</option>'; 
          } 
         ?> 
        </select> 
       </td> 

我有一个第2页也显示这种形式也从形式的结果。第一种形式是张贴到第二张和第二张张贴到自己。

我希望在发布到第二个表单时选择在第一个表单中选择的项目。

有人可以让我在正确的方向吗?

感谢,

Jonesy

回答

1

采取的形式是GET类型,你可以做这样的事情第二页:

<?php 
    foreach($statuslst as $status){ 
    $var = ''; 
    if($_GET['status'] == $status['0']){$var = ' selected="selected"';} 
    echo '<option value="' . $status[0] .'"'. $var .'>' . $status[1] . '</option>'; 
    } 
?> 
+0

非常感谢!正是我需要的! – iamjonesy 2010-10-07 14:36:52

+0

非常欢迎。不要忘记验证并且无效检查你的变量。 – methode 2010-10-07 14:40:37

0
<?php 
     foreach($statuslst as $status){ 
      echo '<option value="'.$status[0].'"'.(in_array($status[0],$_POST['status']) ? ' selected="selected"' : '').'>'. $status[1].'</option>'; 
     } 
?> 

,我认为它应该工作。

0

你需要选择的属性添加到选项标签的第二个形式。看看selected option

+0

但我如何设置选择哪个选项? – iamjonesy 2010-10-07 14:24:44

+0

@jonesy已经发布了一些很好的示例 – 2010-10-07 14:35:01

1

不要忘了检查的变量存在使用

isset($_GET['status']) 

isset($_GET['status']) 

取决于你使用的是什么,因为它不是理想的检查变量不先做这件事。

例如。 if(isset($ _GET ['status'))& & $ _GET ['status'] == $ status [0]例如

+0

感谢您的提示! – iamjonesy 2010-10-07 14:37:11

+0

没有问题,否则你可能会在你的日志中看到一个警告,检查一个空的var – easyjo 2010-10-07 16:18:11