簡體   English   中英

提交表格后保留所選選項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM