用选择的值填充select2下拉列表

时间:2019-01-05 19:20:28

标签: php jquery ajax jquery-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
  }
?>

1 个答案:

答案 0 :(得分:0)

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

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

    <script>

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

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

    </script>

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