2014-02-03 4 views
2

У меня есть ответ JSON с PHP как это:JQuery цикл через AJAX ответ JSON

[[{"name":"J1","id":"0088","order":"2928868"}],[{"name":"J2","id":"0171","order":"2928868"}],[{"name":"J2","id":"0249","order":"2928868"}]] 

То, что я хочу сделать с этим из вывода номер заказа, который всегда одинаков в элементе с идентификатором от #ordernum.

Затем для других частей я хочу создать пару div в контейнере div для имени и идентификатора.

Я уверен, что я могу получить, что немного работает, но то, что я не уверен в том, как цикл через каждый из JSON строк, чтобы добраться до той части, где я могу создать дивы

Это то, что Я до сих пор, но это добавляет к div, где я хочу создать новые div.

Мне нужно сделать еще $ .each() после $ ('# ordernum'). Text (row [0] .order) ;?

$.ajax({ 
    type: "POST", 
    url: "check.php", 
    data: { order: order }, 
    dataType: "json", 
    cache: false, 
    success: function(response) { 

     if(response.length != 0) { 
      console.log(response.order); 
      $.each(response, function(index, row) { 

       console.log(row); 
       $('#ordernum').text(row[0].order); 

       $('.name').append(row[0].name+"<br />"); 
       $('.id').append(row[0].id+"<br />"); 
      }); 
     } 
     else { 
      $('#foo').text('Order number not found!!'); 
     } 

     // set the focus to the order input 
     $('#order').focus().val(''); 
    }, 
    error : function(XMLHttpRequest, textStatus, errorThrown) { 
     console.log('An Ajax error was thrown.'); 
     console.log(XMLHttpRequest); 
     console.log(textStatus); 
     console.log(errorThrown); 
    } 
}); 

EDIT

Это как создается JSON. $ строк из запроса из базы данных SQLSERVER и петли I через которые, чтобы получить все строки из базы данных MySQL

foreach($rows as $row) { 

    $sql = 'SELECT bin, id FROM totebin WHERE id= :id'; 

    $stmt = $db->prepare($sql); 
    $stmt->bindValue(':tote', trim($row['id'])); 
    $stmt->execute(); 

    $array = $stmt->fetchAll(PDO::FETCH_ASSOC); 

    $array[0]['id'] = str_pad($array[0]['id'], 4, '0', STR_PAD_LEFT); 
    $array[0]['order'] = trim($row['order']); 

    $output[] = $array; 
} 

echo json_encode($output); 
+0

Попробуйте 'var response = JSON.parse (response);' внутри обработчика успеха. –

+0

Почему у вас есть массив массивов –

+0

Ответ может быть переформатирован на '[{" name ":" J1 "," id ":" 0088 "," order ":" 2928868 "}, {" name ":" J2 "," id ":" 0171 "," order ":" 2928868 "}, {" name ":" J2 "," id ":" 0249 "," order ":" 2928868 "}]' –

ответ

2

Я думаю, Everthing работает прямо только response.order будет говорить не определено.

если .each цикл не работает, как говорят, то положить перед циклом var response = $ .parseJSON (response).

и, если и нужно resopnse как

[{"name":"J1","id":"0088","order":"2928868"},{"name":"J2","id":"0171","order":"‌​2928868"},{"name":"J2","id":"0249","order":"2928868"}] 

затем в PHP код, который вы можете сделать во второй последней строке

$output[] = $array[0]; 

, то вам не нужно будет индекс в JavaScript.

$('#ordernum').text(row[0].order); 

положить этот код в огонь ошибка пульт.

var response =[[{"name":"J1","id":"0088","order":"2928868"}],[{"name":"J2","id":"0171","order":"2928868"}],[{"name":"J2","id":"0249","order":"2928868"}]]; 

console.log(response.length); 
console.log(response.order); 
$.each(response, function(index, row) { 

     console.log(row[0].name);  
     }); 

и проверить результат

и вы можете создать свой DIV под первую петлю, вам не нужно второй как даже не изменить свой ответ, или переформатировать это.

+0

Спасибо за ваш ответ. Я сделал php-сторону с ответом json и получаю то, что вы получаете, но теперь я получаю эту ошибку. SyntaxError: JSON.parse: неожиданный символ при использовании ответа var = $ .parseJSON (ответ) и использования вашего .each. Можно ли поставить его в скрипку, чтобы я мог видеть, как он работает? – AdRock

+0

Вы можете сначала проверить достоверность json на json.parser.online.fr. скрипка http: // jsfiddle.net/g2S9L/2/ – developerCK

+0

Я все равно работал. Спасибо за вашу помощь – AdRock

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