EDIT Tôi đã kiểm tra tài liệu jQuery và sử dụng $ .ajax với kiểu dữ liệu json được chỉ định trả về một đối tượng javascript được đánh giá, vì vậy eval() không phải là câu trả lời ở đây. Tôi biết rằng dù sao, vì tôi có thể phân tích cú pháp các đối tượng JSON đơn lẻ, không chỉ là mảng. Vấn đề là $ .each-ing theo cách của tôi thông qua chúng :)Làm thế nào để phân tích cú pháp mảng JSON trong jQuery?
Tôi đã làm theo cú pháp để phân tích cú pháp một mảng JSON trong jQuery thành chữ cái, nhưng nó không hoạt động vì một lý do nào đó. Tôi lấy mảng bằng cách sử dụng $ .ajax, đã chỉ định kiểu dữ liệu chính xác và trong Firebug có thể thấy rằng phản hồi từ tập lệnh PHP của tôi là []. Tuy nhiên, khi tôi cố gắng sử dụng $ .each để lặp qua mảng, tất cả tôi nhận được là giá trị không xác định khi tôi cố gắng để console.log các phần khác nhau của mảng. Đây là nơi script php của tôi làm và mã hóa các mảng:
if(mysqli_num_rows($new_res) > 0) {
$messages = array();
while($message_data = mysqli_fetch_assoc($query_res)) {
$message = array(
'poster' => $message_data['poster'],
'message' => $message_data['message'],
'time' => $message_data['time']
);
$messages[] = $message;
}
echo json_encode($messages);
} else if(mysqli_num_rows($new_res) == 0) {
$message = array(
'poster' => '',
'message' => 'No messages!',
'time' => 1
);
echo json_encode($message);
}
Và đây là nỗ lực của tôi để phân tích nó:
var logged_in = '<?php echo $logged_in; ?>';
var poster = '<?php echo $_SESSION["poster"];?>';
$.ajax({
url: 'do_chat.php5',
type: 'post',
data: ({'poster':poster,'logged_in':logged_in}),
dataType: 'json',
success: function(data) {
$.each(data, function(messageIndex, message) {
console.log(parseInt($('#chatWindow :last-child > span').html())+' '+message['time']);
if((parseInt(message['time']) > parseInt($('#chatWindow :last-child > span').html()))) {
$('#chatWindow').append('<div class="poster">'+message['poster']+'</div><div class="message"><span>'+message['time']+'</span>'+message['message']+'</div>');
}
});
}
});
Nếu không có chức năng $ .each tôi có thể phân tích thành công đối tượng JSON đơn , nhưng không phải là một mảng. Đây là chuyến đi chơi đầu tiên của tôi với JSON và $ .each, và tôi khá mới với jQuery, vì vậy hãy dễ dàng nếu mã của tôi có các bit xấu xí!
Bạn đã tìm ra giải pháp chưa? Nếu vậy tôi đề nghị chọn một câu trả lời: p –
Tôi chưa, không. Tôi đã chỉnh sửa nhưng không có thêm câu trả lời nào. Vấn đề nằm ở cách PHP mã hóa đối tượng JSON hoặc với cú pháp $ .each. Tôi giao diện điều khiển.đăng nhập dữ liệu đáp ứng, và sau đó eval() - ed nó và giao diện điều khiển đăng nhập nó và tôi nhận được cùng một điều, do đó, eval không phải là câu trả lời. – user97410