获取另一个数组中的数组长度,

时间:2015-05-13 11:25:59

标签: php jquery arrays ajax

我正在编写一个ajax实时搜索框,返回的行可能来自两个独立的MySQL表。我需要弄清楚数据来自哪个表。对于我的想法,因为table1有三列而table2有五列,我可以计算返回数组中的元素数量,然后我知道。

但MySQL查询需要返回前三个条目,因此我得到一个总是有三个元素的数组,它们也是数组。

我需要计算内部数组中元素的数量。

我该怎么做?

我尝试了以下操作,它不起作用:

$('#search').keyup(function(e) {
  $('#results').empty();
  if ($(this).val().length > 2) {
    $.get('php/search.php', {
      input: $(this).val()
    }, function(data) {
      res = $.parseJSON(data);
      //check if returned data is customer row or vehicle row by counting elements
      //customer row will have 3, vehicle will have 5
      //var x = res[0].length;
      for (var i = 0; i < res.length; i++) {
        var a = "<h2 class=\"searchcustomer\" id=\"result" + i + "\">" + res[i]['name'] + " " + res[i]['mobile'] + "</h2>";
        $('#results').append(a);
        //alert('Its customer'); 
      };
    });
  };
}); 

从服务器文件返回:

[{
  "id": "1",
  "cusid": "4",
  "make": "Hyundai",
  "model": "I10",
  "registration": "DL23IK4837"
}, {
  "id": "2",
  "cusid": "4",
  "make": "Maruti",
  "model": "Swift",
  "registration": "DL87UU8933"
}, {
  "id": "3",
  "cusid": "6",
  "make": "Mitsubishi",
  "model": "Lancer",
  "registration": "DL22NM4435"
}]

1 个答案:

答案 0 :(得分:2)

您在length上使用object,始终为undefined。 您应该使用Object.keys代替。

var x = Object.keys(res[0]).length; //this is working

上面的代码中有很多语法错误:

$('#search').keyup(function(e) {
$('#results').empty();
if ($(this).val().length > 2) {
    $.get('php/search.php',
        {
            input: $(this).val(), cusid: 0
        },
        function(data) {
            res = $.parseJSON(data);

            // check if returned data is table1 or table2 by counting elements
            // table1 will have 3, table2 will have 5

            var x = Object.keys(res[0]).length; //this is working
            //      ^^^^^^^^^^^^^^^^^^^^^^^^^^
            alert(Object.keys(res[0]).length);
            if (x == 3) {
                // respective code
            }
            else if (x == 5) {
                // respective code
            }
        });
}

});

  1. 使用$xx条件
  2. 中获取数据和if
  3. ;不应用于if else
  4. 缺少)
  5. get

    演示:https://jsfiddle.net/tusharj/Loevj0tL/