Javascript 提交表单后保留所选选项
早上好,我有一个问题,那就是:在提交表格后,我无法选择几个选项,我希望有人能帮助我Javascript 提交表单后保留所选选项,javascript,php,Javascript,Php,早上好,我有一个问题,那就是:在提交表格后,我无法选择几个选项,我希望有人能帮助我 <select name="utilizadores[]" id="utilizadores" multiple="multiple" class="selectpicker" data-live-search="true" data-actions-box="true" title="Utilizadores"> <?php while ($reg_sql=mysqli_fetch_arra
<select name="utilizadores[]" id="utilizadores" multiple="multiple" class="selectpicker" data-live-search="true" data-actions-box="true" title="Utilizadores">
<?php while ($reg_sql=mysqli_fetch_array($res_sql)){?>
<option value="<?php echo $reg_sql['ID_USER']; ?>"><?php echo $reg_sql['NOMEUSER']; ?></option>
<?php } ?>
</select>
<script type="text/javascript">
document.getElementById('utilizadores').value = "<?php echo $_POST['utilizadores[]'];?>";
</script>
document.getElementById('utilizadores')。value=“”;
这是我的代码,在选择框中有各种选项。如果您的数据库结果还包含选定的行,则可以更有效地执行此操作,但在循环时,只需将
selected=“selected”
属性添加到
标记中即可
假设此范围中存在$\u POST
数组,则可以使用PHP中的in\u array
函数来确定是否已选择该选项()
基于三元的操作如下所示:
在数组中($reg\u sql['ID\u USER'],$\u POST['utilizadores'])?'selected=“selected”:''
这表示“如果ID_用户在post数组中,则打印所选属性,否则打印空白字符串”
总而言之:
<select name="utilizadores[]" id="utilizadores" multiple="multiple" class="selectpicker" data-live-search="true" data-actions-box="true" title="Utilizadores">
<?php while ($reg_sql=mysqli_fetch_array($res_sql)){?>
<option value="<?php echo $reg_sql['ID_USER']; ?>" <?= in_array($reg_sql['ID_USER'],$_POST['utilizadores']) ? 'selected="selected"' : '' $?>>
<?php echo $reg_sql['NOMEUSER']; ?>
</option>
<?php } ?>
</select>
您必须检查$\u POST['utilizadores']或$\u GET['utilizadores']这取决于您的请求类型。我会在这里用$来解释我的答案
您的选择是多个的,您可以使用in_数组函数检查db记录的结果是否在$_POST['utilizadores'数组中
<select name="utilizadores[]" id="utilizadores" multiple="multiple" class="selectpicker" data-live-search="true" data-actions-box="true" title="Utilizadores">
<?php while ($reg_sql=mysqli_fetch_array($res_sql)){?>
**<option value="<?php echo $reg_sql['ID_USER']; ?>"
<?php
if(isset($_POST['utilizadores'])){
if(in_array($reg_sql['ID_USER'], $_POST['utilizadores'])){
echo 'selected';
}else{
echo '';
}
}
?>
>**<?php echo
$reg_sql['NOMEUSER']; ?></option>
<?php } ?>
</select>
** 这是一个如何做到这一点的示例。如果是,则添加“选定”字符串,如果否,则保留为空。您也可以写入selected=“selected”。您可以执行相同的操作来设置为禁用或只读
<select name="utilizadores[]" id="utilizadores" multiple="multiple" class="selectpicker" data-live-search="true" data-actions-box="true" title="Utilizadores">
<?php while ($reg_sql=mysqli_fetch_array($res_sql)){?>
<?php $selected = isset($reg_sql["mi_variable"]) ? "selected" : ""; ?>
<option value="<?php echo $reg_sql['ID_USER'];?>" <?php echo $selected; ?> >
<?php echo $reg_sql['NOMEUSER']; ?>
</option>
<?php } ?>
</select>
<script type="text/javascript">
document.getElementById('utilizadores').value = "<?php echo $_POST['utilizadores[]'];?>";
</script>
document.getElementById('utilizadores')。value=“”;
当您的值与POST数据匹配时,只需添加一个“selected”属性……我是如何做到的?你能帮我吗?写一些代码来检查打印选项的值,以及它是否与文章中选择的选项匹配。只是一个if语句,真的。谢谢@AndréTavares