Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Dancer框架中使用ajax填充下拉列表_Ajax_Json_Dropdownlistfor_Dancer - Fatal编程技术网

在Dancer框架中使用ajax填充下拉列表

在Dancer框架中使用ajax填充下拉列表,ajax,json,dropdownlistfor,dancer,Ajax,Json,Dropdownlistfor,Dancer,我正在使用Dancer模块获取以下数据: any [ 'ajax', 'get' ] => '/textbook' => sub { set serializer => 'JSON'; @textbooks = [{id => '1', name => "text1"},{id => '1', name => "text1"}...]; return { 'text_list' => \@textbooks; }; 我的

我正在使用Dancer模块获取以下数据:

any [ 'ajax', 'get' ] => '/textbook' => sub {
    set serializer => 'JSON';
    @textbooks = [{id => '1', name => "text1"},{id => '1', name => "text1"}...];
    return { 'text_list'  => \@textbooks;
};
我的tupbook.tt文件中有以下代码:

           <select id="textbook">
           <option value="">Please Select</option>
          </select>

请选择
在js文件中

$(函数(){

$.ajax({
键入:“获取”,
网址:“/教科书”,
数据类型:“json”,
成功:功能(数据){
$.each(data.aaData,函数(i,数据)
{
警报(data.value+“:”+data.text);
var div_data=“”+data.text+”;
警报(分区数据);
$(div_数据)。附录(“#教科书”);
});
}
});
}))


但这不会在页面加载时自动加载条目。请帮忙

我认为你的JS中有几个bug

错误1:首先,您不是指文本列表,而是指未知元素“aaData”

与此相反:

$.each(data.aaData,function(i,data)
success: function (data) {
...
$.each(data.text_list, function(i, data)
试试这个:

$.each(data.text_list, function(i, data)
var div_data="<option value="+data.id+">"+data.name+"</option>";
错误2:在迭代循环中,“data”是数组中的hashref。因此,“data.value”和“data.text”将不起作用。你应该使用'data.id'和'data.name',就像你在舞者代码中指定的那样

而不是:

var div_data="<option value="+data.value+">"+data.text+"</option>";
使用以下命令:

success: function (response) {
...
$.each(response.text_list, function(i, data)
同样,我会考虑把“数据”改成更可读的东西,比如“教科书”。 祝你好运,如果我的答案对你有用,别忘了“接受”

success: function (response) {
...
$.each(response.text_list, function(i, data)