首页 > 解决方案 > 使用所选值填充 select2 下拉列表

问题描述

我正在使用 PHP 脚本来编辑存储在我的数据库中的数据。数据与动态行一起存储。

在我的脚本中,我还使用了 Select2 脚本,它可以在我的下拉列表中进行搜索。

我用来填充的 Ajax 脚本如下:

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <script> 
    function getName<?php echo $m; ?>() { 
      $.ajax
      ({
        type: 'POST',
        url: './get/name/get1.php',
        dataType: 'text',
        cache: false,
        success: function(data){
          $('#name<?php echo $m; ?>').html(data);
        },
        complete: function(){}
      }); 
    }
    $(document).ready(function(){
      getName<?php echo $m; ?>();
    });
</script>

get1.php我使用以下语句来选择数据:

SELECT internal_id, name FROM scu_stock 

scu_stock 表有以下数据:

-------------------------
| internal_id |   name  |
|      1      |   One   |
|      2      |   Two   |
|      3      |  Three  |
|      4      |   Four  |
-------------------------

我想表示为的selected value值存储在另一个表中。scu_address

---------------------------------------
| id |  city  | country | internal_id |
| 6  |   aa   |   ww    |      1      |
| 7  |   bb   |   xx    |      2      |
| 8  |   cc   |   yy    |      3      |
| 9  |   dd   |   zz    |      4      |
---------------------------------------

当我打开时,index.php?id=8我想查看表 scu_stock 中的数据以及在 scu_address 表中调用的选定值。

有人知道我怎么能意识到这一点吗?

这是我的完整代码:

<?php
  $statement = $connect->prepare("SELECT * FROM scu_address WHERE id = :id");
  $statement->execute(
    array(
      ':id'       =>  $_GET["id"]
    )
  );
  $item_result = $statement->fetchAll();
  $m = 0;
  foreach($item_result as $sub_row)
  {
    $m = $m + 1;
?>
    <tr id="row_id_<?php echo $m; ?>">
      <td><label for="name">Name</label></td>
      <td><select style="width:100%" id="name<?php echo $m; ?>" name="name[]" data-srno="<?php echo $m; ?>"></select></td>

      <script type="text/javascript" src="../../../../vendors/select2/dist/js/select2.min.js"></script>
      <script type="text/javascript">
        $.fn.select2.defaults = $.extend($.fn.select2.defaults, {
          allowClear: true,
          closeOnSelect: true,
          value: 'Name',
          minimumResultsForSearch: 15
        });

        $(document).ready(
          function () {
            var configParamsObj = {
              placeholder: 'Name',
              minimumResultsForSearch: 3
            };
            $("#name<?php echo $m; ?>").select2(configParamsObj);
          });
      </script>
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
      <script> 
        function getName<?php echo $m; ?>() { 
          $.ajax
          ({
            type: 'POST',
            url: './get/name/get1.php',
            dataType: 'text',
            cache: false,
            success: function(data){
              $('#name<?php echo $m; ?>').html(data);
            },
            complete: function(){}
          }); 
        }
        $(document).ready(function(){
          getName<?php echo $m; ?>();
        });
    </script>
    </tr>
<?php
  }
?>

标签: phpjqueryajaxjquery-select2

解决方案


要使用从数据库中获取的选定值填充 select2 文本框:

  1. 创建PHP变量以填充获取的数据$selecteddata = " ";然后填充它以获得以下格式$selecteddata .="'1','2','3','4'";
  2. 在 select2 代码之后添加以下脚本:

    <script>

    $('#select2ID').val([<?php echo $selecteddata ;?>]);

    $('#select2ID').trigger('change');

    </script>

这样,您将只选择您获取的数据,以便您进行编辑。


推荐阅读