【问题标题】:Select2 not loading data into after ajax callajax调用后Select2不加载数据
【发布时间】:2014-07-10 06:31:58
【问题描述】:

我正在尝试使用 jquery select2 来使用 ajax 加载数据。一切似乎都是正确的,除了在成功的 ajax 调用后没有显示数据。代码如下:

$(document).ready(function()
{
    $("#program").select2({
        placeholder: "Select a Program",
        minimumInputLength: 3,
        ajax: {
            url: "ajax.php",
            dataType: 'json',
            quietMillis: 200,
            data: function (term, page) {
                return {
                    term: term, //search term
                    page_limit: 10, // page size
                    page: page // page number
            };
            },
            results: function (data) {
                return {results: data};
            }
        },
        dropdownCssClass: "bigdrop",
        escapeMarkup: function (m) { return m; }
    });
});

Ajax 代码:

$search = $mtc->pure['term'];

$programs = $mtc->db->query("SELECT * FROM program AS program 
    WHERE programcode LIKE '%$search%' OR title_en LIKE '%$search%' OR title_ar LIKE '%$search%'
");

while ($program = $mtc->db->fetch_array($programs)){

    $data[] = array("text" => $program['programcode'].' '.$program['title_en'], "id" => $program['programid']);
}

$count = number_format($mtc->db->num_rows($programs));

unset($programs);
echo json_encode(array('data' => $data));

HTML:

<div class="field-block button-height">
    <label for="program" class="label"><b>Program</b></label>
    <input type="hidden" id="program" class="width-300">
</div>

返回的数据如下:

{"data":[{"text":"MG 101 Negotiation Skills and The Art of Persuasion","id":"1"},
{"text":"MG 102 Balanced Score Card","id":"2"},
{"text":"MG 103 Effective Manager... Skills and Behaviors","id":"3"},
{"text":"MG 104 Building High-Performance Teams","id":"4"},
{"text":"MG 105 Measuring Institutional Performance Using RADAR","id":"5"},
{"text":"MG 106 How to Be a Distinctive Administrative Leader","id":"6"},
{"text":"MG 107 Organizational Excellence Between Requirements and Results","id":"7"},
{"text":"MG 108 Effective Negotiation.. Skills and Techniques","id":"8"},
{"text":"MG 109 Developing Personal Skills for Manager","id":"9"}]}

我查看了其他问题,但没有找到任何解决方案。 我不知道我的代码中的错误在哪里。

【问题讨论】:

  • 还要更新 ajax.php 和 HTML 的代码
  • 您提到了返回的数据,那么在 AJAX 调用之后,您可以在脚本的任何地方看到返回的结果吗?
  • @j809 它是萤火虫扩展。我可以看到那里记录的所有内容。
  • @ClearBoth :尝试在 AJAX 成功后添加 console.log() 并告诉我们它是否未定义?
  • Mohit Shrivastava 我已经更新了这个问题。 @j809 控制台返回数据,不是未定义.. 200 OK 16ms

标签: jquery ajax jquery-select2


【解决方案1】:

愚蠢的问题出在 PHP 代码中:

echo json_encode(array('data' => $data));

应该是这样的:

echo json_encode($data);

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2018-07-03
    • 2013-08-31
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多