提交后,从属选择消失

时间:2013-02-05 11:17:37

标签: php jquery forms web-applications

我有一个显示列表的搜索表单。

在表单中有一个城市的从属选择(当选择一个国家时,显示城市的选择)。

问题:当我提交表单时,页面会刷新,因此城市的选择会消失。在推送提交后,我应该怎么做才能保留选择?我应该使用ajax提交表单吗?

4 个答案:

答案 0 :(得分:0)

您需要检查选择框的postget值,并为该特定值设置SELECTED

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

选择1 - &gt;国家

选择2 - &gt;一个国家的城市。我假设使用AJAX加载选项

您可以使用$_POST并使用selected="selected"从选择1中选择该选项,即使它们存在于$_POST中,也无法选择选择2值。

您必须使用AJAX表单提交。

答案 3 :(得分: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'],然后按上述方式使用。这也可以扩展到国家等。