2015-02-09 5 views
0

Прежде всего, я хочу сказать вам, что я искал и не получил никакого решения из предыдущего сообщения stackoverflow для моей проблемы. Поэтому я размещаю свой вопрос здесь.jQuery извлекает ошибку данных JSON

Вслед возвращают данные после echo json_encode($flterarr); {"2":{"surname":"Winchester","mobile":"07898989898","license":"1234567890b"},"3":{"surname":"winchester","mobile":"07898989891","license":"1234567890bytfty"},"4":{"surname":"Test","mobile":"","license":"23frd"}}

Ниже моего Аякса код

$.ajax(

    { 

     type:"POST",          

     url: '../icabz/filterRefresh.php', 

     data: "filter_reset_surname="+filter_reset_surname+"&filter_reset_mobile="+filter_reset_mobile+"&filter_reset_reg_num="+filter_reset_reg_num+"&filter_reset_approval_status="+filter_reset_approval_status+"&filter_reset_logged_status="+filter_reset_logged_status, 
     success: function(data) 

     { 
      alert(data); 
      $.each(data, function(key,val) { 

      alert(val); 
       /*$.each(val, function(key1, val1) { 

       alert(val1.surname); 
       });*/ 
      }); 
     } 

    }); 

когда я предупрежу необработанные данные (без использования dataType:"json" or $.parseJSON(data)) вернулся из PHP страницы он показывает data.But когда я предупреждаю возвращенные данные в функции $.each(), он показывает слово и показывает следующее в консоли.

TypeError: invalid 'in' operand obj 
typeof length === "number" && length > 0 && (length - 1) in obj; 

Теперь, если я пытаюсь использовать dataType:"json" or $.parseJSON(data) и предупредит data.then он показывает [объект Object]. Я использую версию jQuery 1.11.1.

Как я могу получить данные, чтобы получить фамилию?

ответ

0

вы должны использовать dataType:"json" сейчас, попробуйте предупредить data["2"].surname, вы должны получить «Винчестер». если вы хотите перебрать ваш объект вы можете сделать это нравится:

for (var key in data) { console.log(key, data[key]); } 

taken from here

for (var key in data) { 
    for (var skey in data[key]) { 
     console.log(skey); 
    } 
} 
+0

'для (ключ ключа в данных) {console.log (ключ, данные [ключ]); } ' Я использовал это, и он показывает key.but. Я хочу значение. Как я могу получить значение, поскольку это многомерные данные, возвращаемые из JSON. –

+0

Просто добавьте еще один нечистый для цикла (с разными именами переменных, конечно!) – ItayB

+0

для (var subkey in data [key]) {console.log (subkey)} – ItayB

0

Использование dataType : "json"

затем, попробуй ниже Ваш успех часть:

data= JSON.parse(data); 

jQuery.each(data, function(key,val){ 
    alert(val.surname); 
}); 

http://jsfiddle.net/sachint/pryotLxj/

+0

Пока я пытаюсь использовать код это следующее сообщение об ошибке на консоли: –

+0

'SyntaxError: JSON.parse: неожиданный символ в строке 1 колонки 2 данных в формате JSON \t = JSON.parse JSON (данные);' –

+0

Можете ли вы показать мне эту новую часть ajax? – sachin

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