在同一页面上使用多个选择下拉菜单更新多个php变量
我有两个php变量,它们用如下所示的默认值初始化:在同一页面上使用多个选择下拉菜单更新多个php变量,php,forms,submit,Php,Forms,Submit,我有两个php变量,它们用如下所示的默认值初始化: 我还有两个php表单,每个表单都包含一个select下拉列表。每个表单还回显select上方相应php变量的值 <?php echo '<form action="" method="post">'; echo '<label>Selected Color: </label>'; echo $SelectedColor ; echo '<br/>'; echo '<select n
我还有两个php表单,每个表单都包含一个select下拉列表。每个表单还回显select上方相应php变量的值
<?php
echo '<form action="" method="post">';
echo '<label>Selected Color: </label>';
echo $SelectedColor ;
echo '<br/>';
echo '<select name="colorSelect">';
echo '<option value="red">red</option>';
echo '<option value="blue">blue</option>';
echo '<option value="yellow">yellow</option>';
echo '</select>';
echo '</form>';
?>
<br/>
<?php
echo '<form action="" method="post">';
echo '<label>Selected Number: </label>';
echo $SelectedNumber ;
echo '<br/>';
echo '<select name="numberSelect" >';
echo '<option value="1">One</option>';
echo '<option value="2">Two</option>';
echo '<option value="3">Three</option>';
echo '</select>';
echo '</form>';
?>
由于这段代码现在是php变量的值,所以php变量的值永远不会更改,它们只需打印它们的默认值,而不考虑选择菜单的内容
在不使用AJAX的情况下,是否有一种方法可以在更改任一下拉菜单时选择提交相应的表单重新加载页面将php变量的值更改为所选内容并保持重新加载时的选择?如果我正确理解您的意思,那么您会在页面发布后尝试保留您的选择?如果是这样,试试这个。未经测试,但它应能满足您的大部分需求。更新为“发布到自己”并在下拉列表更改时提交
<?php
//read in selected value
$SelectedColor = $_POST['colorSelect'] ? $_POST['colorSelect'] : ' no color selected';
$SelectedNumber = $_POST['numberSelect'] ? $_POST['numberSelect'] : ' no number selected';
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">';
$color_options = array('red','blue','yellow');
foreach($color_options as $option) {
//retain selected value
$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" >';
foreach($number_options as $option => $value) {
//retain selected value
$selected = ($value == $SelectedNumber) ? 'SELECTED' : '';
echo "<option $selected value='$value'>$option</option>";
}
echo '</select>';
echo '</form>';
?>
Yes@FuzzyTree这是正确的。我试图在帖子中保留这两种价值观。每次numberSelect
或colorSelect
更改时,我都会尝试发布帖子