为了账号安全,请及时绑定邮箱和手机立即绑定

无法获取数组结果来填充 jquery select2

无法获取数组结果来填充 jquery select2

PHP
小唯快跑啊 2023-04-21 10:47:57
我正在尝试让 jQuery SELECT2 从 mysqli 查询中提取数据:[fxn/fxn_select2_series.php]if(!isset($_POST['searchTerm'])){     $qry_select2_series =     "SELECT DISTINCT series_id as 'id', series_title as 'text'      FROM `series` WHERE series_title IS NOT NULL" ;}else{     $search = $_POST['searchTerm'];      $qry_select2_series =     "SELECT DISTINCT series_id as 'id', series_title as 'text'      FROM `series` WHERE series_title IS NOT NULL and series_title LIKE '%".$search."%'" ;   }$cxn = new mysqli('localhost', $user, $pass, $db);$result = mysqli_query($cxn,$qry_select2_series);$response = mysqli_fetch_all($result);echo json_encode($response);如果我自己打开那个页面,我会得到正确的数组格式结果:[["1","Spring Revels"],["2","Trois Chansons"]]我将查询插入 jQuery SELECT2 ...<fieldset>    <legend>Title</legend>    <div class='inputlabel'>        <label for='title'>Title</label>        <input type='text' size='64' id='title'>        <label for 'subtitle'>Subtitle</label>        <input type='text' size='64' id='subtitle'>        <label for='series'>Series</label>        <span><select class="js-example-basic-single" id='select2_series' style='width:32'>            <option>Select/Search ...</option>        </select>        (Enter Opus, Collection, Volume, Libretto, Etc. or select below...)</span>        <label for='sequence'>Sequence</label>        <span><input type='number' min='1' max='99' step='1' size='4' id='sequence'>        (Enter the sequence number of this item in the above series)</span></fieldset><script type="text/javascript">$(document).ready(function(){   $("#select2_series").select2({      ajax: {        url: "fxn/fxn_select2_series.php",        type: "post",        dataType: 'json',        delay: 250,        data: function (params) {           return {              searchTerm: params.term // search term           };        },        processResults: function (response) {           return {              results: response           };        },        cache: true      }   });});</script>
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

根据规范,正确的格式是:

{

  "results": [

    {

      "id": 1,

      "text": "Option 1"

    },

    {

      "id": 2,

      "text": "Option 2"

    }

  ],

  "pagination": {

    "more": true

  }

}

因此,您需要遍历结果并创建一个与该格式匹配的数组。


查看完整回答
反对 回复 2023-04-21
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

$response = mysqli_fetch_all($result);


我按如下方式循环,其他一切保持不变:


while($row = mysqli_fetch_array($result)) {

$response[] = array("id"=>$row['id'],"text"=>$row['text'])

;}

它完美地工作。


查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信