我遇到了一个ajax函数的问题,该函数使用null选项填充列表框。我对此很新,必须忽略一些东西。数据库连接是通过Sugarcrm完成的,因为我也将它用于自动完成功能。我似乎无法获得填充除空之外的任何选项。
的index.php
<script>
$(document).ready(function(){
$.ajax({
url: 'search.php',
type: 'json',
success:function(response){
var len = response.length;
$("#sel1").empty();
for( var i = 0; i<len; i++){
$("#sel1").append("<option value='"+name+"'></option>");
}
}
});
});
</script>
<select id="sel1" multiple size="6">
<option value="0">- Select -</option>
</select>
的search.php
<?php
global $db;
$rolelistQry = "SELECT distinct name from acl_roles";
$rolelistData = $db->query($rolelistQry);
$name_array = array();
while( $row = $rolelistData->fetch_assoc()){
$name = $row['name'];
$name_array[] = array("name" => $name);
}
echo json_encode($name_array);
?>
答案 0 :(得分:1)
$("#sel1").append("<option value='"+name+"'></option>");
名称变量不存在。尝试将其更改为response.name
$("#sel1").append("<option value='"+response.name+"'>"+response.name+"</option>");
答案 1 :(得分:0)
我猜你是否得到了一堆空白选项?
<option value="0">- Select -</option>
是否为正确的语法:选项的值(选中时)为0,并显示选择。
因此,当您在ajax回调中添加新项目时,您希望让选项显示一些内容:
<option value='name'>NAME</option>
答案 2 :(得分:0)
实际上你没有循环遍历数组名称,
这应该有效:
<script>
$(document).ready(function(){
$.ajax({
url: 'search.php',
type: 'json',
success:function(response){
var result = $.parseJSON(response);
var len = result.length;
$("#sel1").empty();
for( var i = 0; i<len; i++){
$("#sel1").append("<option value='"+ result[i]['name'] +"'></option>");
}
}
});
});
</script>
<select id="sel1" multiple size="6">
<option value="0">- Select -</option>
</select>
答案 3 :(得分:0)
您正尝试将响应作为数组访问,对吧?
您需要执行类似
的操作$("#sel1").append("<option value='"+response[i].name+"'>"+response[i].name+"</option>");
从响应数组中获取项目。 (根据majorlogic的回答修改)