使用几个单独表单中的html选择来筛选SQL查询



我有几个静态下拉菜单。

在任一下拉菜单中选择一个选项后,将使用一个值更新相应的php变量。

这些php变量最终将在sql查询中使用,以显示基于多项选择的记录。

每个下拉列表都是一个html选择,包含在自己的表单标记中。表格以的形式提交

echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo '<select onchange="this.form.submit()" name="numberSelect" >';    

此方法很简单,但不会在提交另一个表单时立即保留从一个表单发布的值。

有没有一种方法可以在php变量或其他方法中保留多选的值,以便在php的其他地方使用多个表单中的值?

php的这个工作片段说明了这个问题,

<?php    
//read in selected value
$SelectedColor = $_POST['colorSelect'] ? $_POST['colorSelect'] : 'none';
$SelectedNumber = $_POST['numberSelect'] ? $_POST['numberSelect'] : 'none';
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">'; 
echo '<label>Selected Color: </label>';
echo $SelectedColor ;
echo '<br/>';
echo '<select onchange="this.form.submit()" name="colorSelect">';
echo '<option value="none">Choose</option>';
$color_options = array('red','blue','yellow');
foreach($color_options as $option) {
$selected = ($option == $SelectedColor) ? 'SELECTED' : ''; 
echo "<option $selected value='$option'>$option</option>";
}
echo '</select>';
echo '</form>';    
?>
<br/>
<?php
$number_options = array(1 => 'one', 2 => 'two', 3 => 'three');
echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">'; 
echo '<label>Selected Number: </label>';
//if a number was posted get the corresponding string
echo is_numeric($SelectedNumber) ? $number_options[$SelectedNumber] : $SelectedNumber;
echo '<br/>';
echo '<select onchange="this.form.submit()" name="numberSelect" >';    
echo '<option value="none">Choose</option>';
foreach($number_options as $option => $value) {
$selected = ($value == $SelectedNumber) ? 'SELECTED' : ''; 
echo "<option $selected value='$value'>$option</option>";
}
echo '</select>';
echo '</form>';
?>

删除第一个

</form>

第二次

<form>

两个选择都需要是同一表单的一部分。

最新更新