在 PHP 中,如何使用 select2(Jquery 插件)显示选定的值

Posted

技术标签:

【中文标题】在 PHP 中,如何使用 select2(Jquery 插件)显示选定的值【英文标题】:In PHP, how do I showing selected values with select2(Jquery pulgin) 【发布时间】:2021-08-27 00:36:44 【问题描述】:

我在 select2 的选择框中需要多个值,但它选择了最后一个。 我可以在数据库中插入appletomato,但在浏览器的select2中只有tomato显示。

这是我的代码,只选择一个值,而不是多个。

<?php if ($views['mb_medical']) $medi_arr = explode('|', $views['mb_medical']);
    for ($i = 0; $i < count($medi_arr); $i++)  ?>
        <select class="medical_subject" name="mb_medical[]" id="mb_medical" multiple="multiple">
            <option value="apple" <?php if($medi_arr[$i] == 'apple') echo 'selected'; ?>>apple</option>
            <option value="tomato" <?php if($medi_arr[$i] == 'tomato') echo 'selected'; ?>>tomato</option>
            <option value="banana" <?php if($medi_arr[$i] == 'banana') echo 'selected'; ?>>banana</option>
            <option value="melon" <?php if($medi_arr[$i] == 'melon') echo 'selected'; ?>>melon</option>
        </select>
                
<?php  ?>

在图片中,select2 缺少apple,但它确实有tomato。 我已经检查了$medi_arr[$i] 输出的正确性。

【问题讨论】:

【参考方案1】:

我正在添加一个示例代码,以便您可以在代码中使用此代码来完成您想要的任务。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js" integrity="sha512-2ImtlRlf2VVmiGZsjm9bEyhjGW4dU7B6TNwh/hx/iSByxNENtj3WVE6o/9Lj4TJeVXPi4bnOIMXFIJJAeufa0A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" integrity="sha512-nMNlpuaDPrqlEls3IX/Q56H36qvBASwb3ipuo3MxeWbsQB1881ox0cRv7UPTgBlriqoynt35KjEwgGUeUXIPnw==" crossorigin="anonymous" referrerpolicy="no-referrer" />

<select name="category" class="select2 select2-offscreen" id="category" style="width:100%" data-placeholder="Select Fields" tabindex="-1" multiple>
<option value="">Select Category</option>
<option value="1">Business</option>
<option value="7">Education</option>
<option value="5" selected="selected">Environment</option>
<option value="3" selected="selected">Health</option>
<option value="11">Movies</option>
<option value="4">Science</option>
<option value="2">Sports</option>
<option value="6">Tech</option>
<option value="10">Top Stories</option>      
</select>

<script>
$("#category").select2();
</script>

【讨论】:

我知道我的代码存在问题。 'select2' 和带有爆炸的数组列表之间似乎存在问题。我要再试一次...【参考方案2】:

终于成功了。

<?php if ($views['mb_medical']) 
  $medi_arr = explode('|', $views['mb_medical']); ?>
  
  <select class="medical_subject" name="mb_medical[]" id="mb_medical" multiple>
      <option value="apple" 
        <?php for ($i = 0; $i < count($medi_arr); $i++) 
        if($medi_arr[$i] == 'apple') echo 'selected'; ?>>apple
      </option>
      <option value="tomato" 
        <?php for ($i = 0; $i < count($medi_arr); $i++) 
        if($medi_arr[$i] == 'tomato') echo 'selected'; ?>>tomato
      </option>
      <option value="banana" 
        <?php for ($i = 0; $i < count($medi_arr); $i++)  
        if($medi_arr[$i] == 'banana') echo 'selected'; ?>>banana
      </option>
      <option value="melon" 
        <?php for ($i = 0; $i < count($medi_arr); $i++)  
        if($medi_arr[$i] == 'melon') echo 'selected'; ?>>melon
      </option>
  </select>
            

【讨论】:

以上是关于在 PHP 中,如何使用 select2(Jquery 插件)显示选定的值的主要内容,如果未能解决你的问题,请参考以下文章

如果我使用 select2 小部件,如何发布表中记录的实际主键而不是 php Yii2 中的数组索引?

在 yii2 中验证 select2

如何在select 2 jquery中显示列表数据并查找数据

如何使用 select2 小部件 yii 制作依赖下拉列表

如何用php绑定select2和mysql数据库

Select2 和 initSelection 回调