选择后下拉值恢复为默认值 php
dropdown value reverts to default value after selected php
我正在尝试使用 php 创建下拉菜单。我使用 onchange="this.form.submit();" 作为代码的一部分。我想在同一页面上显示结果。
在 select 下拉值后,该值显示,但 selected 值恢复为第一个值。
<form action="" method="post">
<select name="q" onchange="this.form.submit();">
<option value="0" >Select One</option>
<option value="1" >One</option>
<option value="2" >Two</option>
<option value="3" >Three</option>
<option value="4" >Four</option>
<option value="5" >Five</option>
</select>
</form>
<?php
if (isset($_POST['q'])) {echo 'var is now set to ' . $_POST['q'];}
?>
我想显示 select 值并回显该值。感谢您的帮助!
<option value="1" <?php if ($_POST['q']=="1") {echo "selected";}?> >One</option>
添加此代码所有选项,但您必须为此使用数组,因为我的路很长。
如果已选择该值,您需要添加 selected
属性,只需按以下方式添加:
<form action="" method="post">
<select name="q" onchange="this.form.submit();">
<option value="0" <?php if(isset($_POST['q']) && $_POST['q']=="0") echo "selected"?>>Select One</option>
<option value="1" <?php if(isset($_POST['q']) && $_POST['q']=="1") echo "selected"?> >One</option>
<option value="2" <?php if(isset($_POST['q']) && $_POST['q']=="2") echo "selected"?>>Two</option>
<option value="3" <?php if(isset($_POST['q']) && $_POST['q']=="3") echo "selected"?>>Three</option>
<option value="4" <?php if(isset($_POST['q']) && $_POST['q']=="4") echo "selected"?>>Four</option>
<option value="5" <?php if(isset($_POST['q']) && $_POST['q']=="5") echo "selected"?>>Five</option>
</select>
</form>
其他答案有效,但测试每个选项效率低下。做这样的事情:
<?php
// put all your options into an array
$options = array(0 => 'Select One', 1 => 'First', 2 => 'Second', 3 => 'And so on');
?>
<select name="q" onchange="this.form.submit();">
<?php
// loop trough the elements
foreach($options as $value => $label) {
// test if the current value is the posted one...
$selected = (isset($_POST['q']) && intval($_POST['q']) === $value) ? ' selected="selected"' : '';
echo '<option value="'.$value.'"'.$selected.'>'.$label.'</option>';
}
?>
</select>
我正在尝试使用 php 创建下拉菜单。我使用 onchange="this.form.submit();" 作为代码的一部分。我想在同一页面上显示结果。
在 select 下拉值后,该值显示,但 selected 值恢复为第一个值。
<form action="" method="post">
<select name="q" onchange="this.form.submit();">
<option value="0" >Select One</option>
<option value="1" >One</option>
<option value="2" >Two</option>
<option value="3" >Three</option>
<option value="4" >Four</option>
<option value="5" >Five</option>
</select>
</form>
<?php
if (isset($_POST['q'])) {echo 'var is now set to ' . $_POST['q'];}
?>
我想显示 select 值并回显该值。感谢您的帮助!
<option value="1" <?php if ($_POST['q']=="1") {echo "selected";}?> >One</option>
添加此代码所有选项,但您必须为此使用数组,因为我的路很长。
如果已选择该值,您需要添加 selected
属性,只需按以下方式添加:
<form action="" method="post">
<select name="q" onchange="this.form.submit();">
<option value="0" <?php if(isset($_POST['q']) && $_POST['q']=="0") echo "selected"?>>Select One</option>
<option value="1" <?php if(isset($_POST['q']) && $_POST['q']=="1") echo "selected"?> >One</option>
<option value="2" <?php if(isset($_POST['q']) && $_POST['q']=="2") echo "selected"?>>Two</option>
<option value="3" <?php if(isset($_POST['q']) && $_POST['q']=="3") echo "selected"?>>Three</option>
<option value="4" <?php if(isset($_POST['q']) && $_POST['q']=="4") echo "selected"?>>Four</option>
<option value="5" <?php if(isset($_POST['q']) && $_POST['q']=="5") echo "selected"?>>Five</option>
</select>
</form>
其他答案有效,但测试每个选项效率低下。做这样的事情:
<?php
// put all your options into an array
$options = array(0 => 'Select One', 1 => 'First', 2 => 'Second', 3 => 'And so on');
?>
<select name="q" onchange="this.form.submit();">
<?php
// loop trough the elements
foreach($options as $value => $label) {
// test if the current value is the posted one...
$selected = (isset($_POST['q']) && intval($_POST['q']) === $value) ? ' selected="selected"' : '';
echo '<option value="'.$value.'"'.$selected.'>'.$label.'</option>';
}
?>
</select>