我正在处理“查找名称”页面 - 用户输入一个或多个字母,字母通过ajax传递给服务器,服务器查询数据库,数据库返回一个json数组(我学会了如何使昨天的名字包含字母,我将列表发布在div中。
示例:用户输入“wa”并返回“George Washington”(所有姓氏带有“wa”)。
服务器端PHP代码运行良好 - 我已经单独测试它并以正确的json格式返回所有正确的名称。
客户端工作正常,但是!我使用“强力”技术只是为了看看我是否可以使用jQuery()。html()命令将数组放入div中(我可以使用的唯一命令 - 我尝试了.val,.data和a一堆将数组放入div的其他方法。)。
这是将json数组放入div的代码。是的,正确,它很丑 - 但只要数组的大小是> = 15(我的“html”中的行数 - 否则NOTHING被发布在div中)它就可以工作。
$.ajax({//------------------------start of ajax---------------------------------->
type: "POST",
url: "findpatientbackend.php",
data: {letterslastname: lastname},
dataType : 'json',
success: function(result) {$("#div1").html(
"----" + result[0].localid + "--------------" + result[0].lastname + "-------------" + result[0].firstname + "<br>" +
"----" + result[1].localid + "--------------" + result[1].lastname + "-------------" + result[1].firstname + "<br>" +
"----" + result[2].localid + "--------------" + result[2].lastname + "-------------" + result[2].firstname + "<br>" +
"----" + result[3].localid + "--------------" + result[3].lastname + "-------------" + result[3].firstname + "<br>" +
"----" + result[4].localid + "--------------" + result[4].lastname + "-------------" + result[4].firstname + "<br>" +
"----" + result[5].localid + "--------------" + result[5].lastname + "-------------" + result[5].firstname + "<br>" +
"----" + result[6].localid + "--------------" + result[6].lastname + "-------------" + result[6].firstname + "<br>" +
"----" + result[7].localid + "--------------" + result[7].lastname + "-------------" + result[7].firstname + "<br>" +
"----" + result[8].localid + "--------------" + result[8].lastname + "-------------" + result[8].firstname + "<br>" +
"----" + result[9].localid + "--------------" + result[9].lastname + "-------------" + result[9].firstname + "<br>" +
"----" + result[10].localid + "--------------" + result[10].lastname + "-------------" + result[10].firstname + "<br>" +
"----" + result[11].localid + "--------------" + result[11].lastname + "-------------" + result[11].firstname + "<br>" +
"----" + result[12].localid + "--------------" + result[12].lastname + "-------------" + result[12].firstname + "<br>" +
"----" + result[13].localid + "--------------" + result[13].lastname + "-------------" + result[13].firstname + "<br>" +
"----" + result[14].localid + "--------------" + result[14].lastname + "-------------" + result[14].firstname
)},
error : function() { alert("error on return"); }
});
所以,现在回答我的问题。 鉴于这种情况 - 使用“result [x] .variable”解析json数组,在jQuery命令内部,在ajax调用内部 - 执行“while”循环的最佳方法是将内容放入div中“调整自己”以获得正确的行数。
我再次感谢你的帮助。
编辑:这是“未定义”的输出。
未定义---- 133 --------------亚当斯-------------约翰
---- 146 --------------阿利吉耶-------------比阿特丽斯
---- 154 --------------巴布-------------嘘
---- 153 --------------比利时-------------玫瑰
---- 160 --------------广-------------丹尼尔
---- 162 --------------加洛-------------贝瑟尔
答案 0 :(得分:2)
var output = "";
$.each(result, function(index, value) {
output += "----" + value.localid + "--------------" + value.lastname + "-------------" + value.firstname + "<br>";
});
检查是否有15个或更多结果 - result.length >= 15
。
所以最终代码如下所示:
$.ajax({//------------------------start of ajax---------------------------------->
type: "POST",
url: "findpatientbackend.php",
data: {letterslastname: lastname},
dataType : 'json',
success: function(result) {
if(result.length >= 15) {
var output = "";
$.each(result, function(index, value) {
output += "----" + value.localid + "--------------" + value.lastname + "-------------" + value.firstname + "<br>";
});
$("#div1").html(output);
}
},
error : function() { alert("error on return"); }
});