如何在提交后保留POST数据中选择的html选项



我有一个带有默认值的HTML选择,我想在这个选择上保留数据,如果以前没有选择任何内容,我想保留第一个值,如下所示:

HTML侧:

<select id="gender" name="gender" class="form-control" required>
<option selected disabled>Gender</option>
<option value="1">Male</option>
<option value="2">Female</option>                                                                                                               </select>

PHP方面:

$_SESSION['post'] = $_POST;
// I first protected the data with html_entities
$_SESSION['post']['gender']=$this->_dataProtected['gender'];
// I redirect just for test (it works well with other values from input)
header('Location: ?page=children&action=add');
exit();

Javascript端:

$(window).on('load',function (){
var idGender = document.getElementById('gender').value = "<?php echo $_POST['gender'] ?? " +          $('#gender').val($('#gender option:first').val()) + " ?>";
});

感谢您的帮助

提交表单后的结果:在我没有选择选项的情况下,它会用null值填充我的选择,在我选择选项时也是如此。

您无法获得从禁用选项返回的值。由于选择是必需的,请检查返回的值是否为NULL,这样您就知道没有选择其他值。

示例:

If (is_null($_SESSION['post']['gender'])) {
$_SESSION['post']['gender'] = 'Gender';
}

使用此if/else,如果禁用选项为",则将变量更改为"性别"(选定的禁用选项(;选择";。

谢谢你@Stoff,

在将value=""添加到所选选项后,我将Javavscript更改为:

var idGender = document.getElementById('gender').value = "<?php echo 
$_SESSION['post']['gender'] ?? '' ?>";

现在,它的作品:D

最新更新