2013-06-12 3 views
1
function getReportGroups() { 
    $.ajax({ 
     contentType: "application/json; charset=utf-8", 
     url: "ReportGroups.ashx", 
     data: { 
      'method': 'getReportGroups', 
      'projectId': '30390' 
     }, 
     dataType: "json", 
     success: function (data) { 
      alert('inside success'); 
      var i = 0; 
      groupName = [data[i].name]; 
      while (data[i] != null) { 
       alert([data[i].name]); 
       alert([data[i].reportGroupId]); 
       $("#top-node").append("<li item-checked='true' item-expanded='true'><a href=# style=font-weight:bold>" + [data[i].name] + "</a>"); 
       i++; 
       var id = [data[i].reportGroupId]; 
       getReports(id); 
      } 

     }, 
     error: function (result) { 
      alert("Error- Inside the error loop"); 
     } 

    }); 
} 

function getReports(id) { 
    $.ajax({ 
     contentType: "application/json; charset=utf-8", 
     url: "ReportGroups.ashx", 
     data: { 
      'method': 'getReports', 
      'reportGroupId': id 
     }, 
     dataType: "json", 
     success: function (data) { 
      alert('inside getReports success'); 
      var i = 0; 
      groupName = [data[i].name]; 
      while (data[i] != null) { 
       alert([data[i].name]); 
       i++; 
      } 
     }, 
     error: function (result) { 
      alert("Error- Inside the error loop"); 
     } 
    }); 
} 

Это мой код. Здесь, когда я вызываю getReports (id) из getReportGroups() с идентификатором параметра, id передается как ноль в функции getReoprts(). Я не знаю, в чем проблема. я использовал поле предупреждения, чтобы проверить, существует ли 'id' в первом, это делает. У меня есть действительный Id в функции getReportsFunction. Но я получаю id как ноль во втором. Что я здесь делаю неправильно?как передать значение как параметр при вызове функции jquery

+0

Почему вы упаковочную переменные в массивы, как 'Groupname = [данные [я] .name]'? Я бы начал отслеживать проблему оттуда ... – elclanrs

+0

Вы объявляете var id в вызове успеха первого метода. Может быть, объявить его за пределами вызова ajax, поэтому выйдите за пределы области вызова ajax сразу после getReportGroups. Также, где вы предупреждаете, что идентификатор верен, когда вы находитесь в getReports? – Nicros

+0

@ Никос: в строке 16 –

ответ

0

Похоже, вы увеличиваете i перед вызовом var id = data[i].reportGroupId, где при проверке значения на первой итерации (alert([data[i].reportGroupId]);).

Переместить i++ в качестве последнего утверждения цикла while и посмотреть, устраняет ли это проблему.

+0

проблема остается прежней. –

0

Проблема выглядит i++, вы можете использовать .each() для перебора данных

$.each(data, function(idx, item){ 
    alert(item.name); 
    alert([item.reportGroupId]); 
    $("#top-node").append("<li item-checked='true' item-expanded='true'><a href=# style=font-weight:bold>" + [item.name] + "</a>"); 
    var id = [item.reportGroupId]; 
    getReports(id); 

}) 
Смежные вопросы