Справка Jquery Загрузка данных Json - PullRequest
2 голосов
/ 13 июня 2011

Я хочу загрузить информацию json с другой страницы моего сайта с помощью ajax. вот что у меня есть

$(function() {
  $('#show-more').bind('click', function() {
    $.ajax({
      url: 'http://localhost:3000/users/10',
      dataType: 'json',
      success: function(data) {
        alert(data);    
      }
    });
  });
})

Когда я это делаю, всплывает предупреждение, и я получаю [OBJECT OBJECT] [OBJECT OBJECT]. Как я могу взять эти данные и добавить их в свой идентификатор канала на странице. Я попробовал это вместо alert(data):

$('#feed').append(data);

Однако я получаю эту ошибку «frag.appendChild (ret [i]);» в моей консоли. Как я могу делать то, что я хочу правильно?

Кроме того, в данных, которые я получаю, есть поле с заголовком сообщения, к которому я пытаюсь получить доступ. Как я могу получить к нему доступ? Буду ли я делать что-то вроде data.message?

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 13 июня 2011

Тот факт, что предупреждение показывает, что у вас есть объект, - это здорово.JSON - это нотация объектов JavaScript, поэтому в методе успеха следует ожидать получения объекта в качестве данных.

В зависимости от типа, вы можете обращаться к данным различными способами.Вы не сможете «добавить» его непосредственно к другому элементу, так как это не HTML.Поэтому, если JSON представляет собой отдельный объект, вы можете сделать это:

alert(data.id)

Где «id» - это имя одного из свойств объекта.Или, если данные представляют собой массив объектов, вы можете сделать это:

$.each(data, function()
{
  alert(this.id);
});

Независимо от типа, вам придется вручную создавать HTML.

1 голос
/ 13 июня 2011

Данные являются объектом javascript.Вероятно, есть свойства, которые содержат данные, которые вы ищете.Если data.message = "foo", то при выполнении alert(data.message) будет выведено «foo»;

Если вы хотите просмотреть свойства данных, вы можете сделать одно из двух: 1) Установить точку останова на строке, содержащей alert(data); В консоли chrome Javascript или расширении Firebug в Firefox вы можете поставить точку останова на строке и просмотреть значения всех переменных.

2) Вы можете пройти по ней:

var str = "";
for(var prop in data){
   str += prop + ": " + data[prop] + "\n";
}
alert(str);

Это покажет вам все свойства данных.Некоторые из этих свойств также могут быть объектами, и в этом случае вам придется итерировать их.

0 голосов
/ 13 июня 2011

Используйте это, чтобы дать вам быстрое представление о том, что происходит:

<?php
     echo json_encode(array('test' => 'This is a test'));
?>

Затем в вашем JQuery изменить оповещение (данные), чтобы предупредить (data.test). Это должно помочь вам начать - или, по крайней мере, работать как образец для дальнейшего развития. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...