[英]Keep the selected options after submitting the form
早上好,我遇到的一個問題是:提交表單后,我無法選擇多個選項,我希望有人來幫助我。
<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>
這是我的代碼,在選擇框中具有各種選項
您必須檢查$ _POST ['utilizadores']或$ _GET ['utilizadores']取決於您的請求類型。 我將在這里使用$ _POST來解釋我的答案。
您的選擇是多個,可以使用in_array函數檢查數據庫記錄的結果是否在$ _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"
屬性添加到<option>
標記中即可。
假設您的$_POST
數組存在於此范圍內,則可以在PHP中使用in_array
函數來確定是否已選擇該選項( docs )。
基於三元的操作如下:
in_array($reg_sql['ID_USER'],$_POST['utilizadores']) ? 'selected="selected"' : ''
上面寫着“如果ID_USER在發布數組中,則打印所選屬性,否則,打印空白字符串”
放在一起:
<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>
有關如何執行此操作的示例。 如果是,則添加“選定”字符串;否則,將其留空。 您還可以編寫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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.