我有几个静态下拉菜单。
在任一下拉菜单中选择一个选项后,将使用一个值更新相应的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>
两个选择都需要是同一表单的一部分。