【发布时间】:2012-02-20 05:39:02
【问题描述】:
我想知道如何提交两个没有提交按钮的下拉菜单。我想在选择第一个下拉菜单时填充第二个下拉菜单,然后能够回显第二个下拉菜单的选择。第二个下拉菜单的数据来自 mySQL 数据库。我在我的页面上使用了两种表单,每个下拉菜单一个。
<form method="post" id="typeForm" name="typeForm" action="">
<select name="filterType" onchange="document.getElementById('typeForm').submit()">
<option <?php if ($_POST['filterType'] == 'none') print 'selected '; ?> value="none">Filter by...</option>
<option <?php if ($_POST['filterType'] == 'employee') print 'selected '; ?> value="employee">Employee</option>
<option <?php if ($_POST['filterType'] == 'taskName') print 'selected '; ?> value="taskName">Task</option>
</select>
<noscript><input type="submit" value="Submit"/></noscript>
</form>
<form method="post" id="categoryForm" name="typeForm" action="">
<select name="filterCategory" onchange="document.getElementById('categoryForm').submit()">
<option <?php if ($_POST['filterCategory'] == 'none') print 'selected '; ?> value="none"></option>
<?
$count2 = 0;
echo $rowsAffected2;
while ($count2<$rowsAffected2) {
echo "<option value='$filterName[$count2]'>$filterName[$count2]</option>";
$count2 = $count2 + 1;
}
?>
</select>
<noscript><input type="submit" value="Submit"/></noscript>
</form>
我可以毫无问题地提交第一个表单。它成功地将值检索到第二个下拉菜单中。但是从第二个菜单中选择一个值时,页面刷新,我留下了两个未选择的下拉菜单。我尝试回显 $_POST['filterCategory'] 并没有得到结果。我尝试使用 onchange="this.form.submit();"在这两种形式中,我仍然得到相同的结果。有没有办法在不使用 AJAX、JQuery 或任何复杂的 Javascript 脚本的情况下做到这一点?我需要在 PHP 中完全做到这一点。
我想避免第二次刷新,但仍然能够从第二次选择中收集 $_POST[''] 数据。
【问题讨论】:
标签: php javascript drop-down-menu