2013-02-05 177 views
-2

我有一个显示列表的搜索表单。提交后依赖选择消失

在表格中有一个城市的依赖选择(当选择一个国家时,显示城市的选择)。

问题:当我提交表单时,页面被刷新,所以城市的选择消失了。我应该怎样做推挽提交后选择?我应该使用ajax提交表单吗?

+0

您是否首先使用PHP生成列表? – Ynhockey

+0

@Ynhockey是------ – ziiweb

回答

0

进行检查像if($_POST["county"]!=""){"load your cities drop down. and city drop down will be filtered by county drop down."}。认为它会帮助你。

0

您需要检查选择框的postget值和设定SELECTED为特定值:

<?php @$selected[$_GET['test']] = 'SELECTED'; ?> 
<form> 
    <select name="test"> 
    <option value="a" <[email protected]$selected['a']?>>1</option> 
    <option value="b" <[email protected]$selected['b']?>>2</option> 
    <option value="c" <[email protected]$selected['c']?>>3</option> 
    <option value="d" <[email protected]$selected['d']?>>4</option> 
    </select> 
    <input type="submit" /> 
</form> 
0

选择1 - >国家

选择2 - >城市为一个国家。我假设使用AJAX加载选项

您可以使用$_POSTselected="selected"从选择1中选择选项,即使它们存在于$_POST中,也不可能选择选择2值。

您将不得不使用AJAX表单为此提交。

0

首先您需要保存列表中的值,假设它是$_POST['city']。然后,如果你是在同一个页面,并重新生成城市的同一名单上,假设类似代码:

foreach ($cities as $city) 
{ 
    echo "<option value='{$city}'>{$city}</option>"; 
} 

将其更改为:

foreach ($cities as $city) 
{ 
    echo "<option value='{$city}'"; 
    if ($city == $_POST['city']) { echo ' selected="yes"'; } 
    echo ">{$city}</option>"; 
} 

如果我们不是在谈论同一页面,那么只要你得到$_POST['city'],将它保存到会话变量,例如$_SESSION['city'],然后如上使用。这也可以扩展到国家等。