如何做javascript while / do循环INSIDE的jQuery .html函数

时间:2013-06-30 14:27:24

标签: jquery json while-loop do-while

我正在处理“查找名称”页面 - 用户输入一个或多个字母,字母通过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 --------------加洛-------------贝瑟尔

1 个答案:

答案 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"); }
});