提交表单后保留选定的选项

时间:2018-04-10 10:16:33

标签: 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_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> 

这是我的代码,在选择框中有各种选项

3 个答案:

答案 0 :(得分:1)

您必须检查$ _POST [&#39; utilizadores&#39;]或$ _GET [&#39; utilizadores&#39;]是否取决于您的请求类型。我将在这里使用$ _POST来解释我的答案。

你的选择是多个,你可以使用in_array函数来检查db记录的结果是否在$ _POST数组中[&#39; utilizadores&#39;]

<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>

答案 1 :(得分:0)

如果您的数据库结果还包含选择的行,则可以更有效地执行此操作,但是当您循环浏览时,只需将selected="selected"属性添加到<option>标记。

假设此范围内存在$_POST数组,您可以使用PHP中的in_array函数来确定是否已选择该选项(docs)。

基于三元的操作如下:

in_array($reg_sql['ID_USER'],$_POST['utilizadores']) ? 'selected="selected"' : ''

其中说&#34;如果ID_USER在post数组中,则打印所选属性,否则,打印一个空白字符串&#34;

全部放在一起:

<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>

答案 2 :(得分:0)

如何执行此操作的示例。如果是,则添加“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>