Получить вызов jquery ajax в массив - PullRequest
3 голосов
/ 23 мая 2011

Я хотел бы знать, возможно ли вернуть вызов ajax в массив javascript, а не в объект DOM.Вызов ajax возвращает что-то вроде n-кортежей value1-value2, и я хотел бы повторить это.

Спасибо.

$(function () {
    $("#categoria").change(function() {
        var id = $(this).val();
        alert(id);
        vars = load("getcategoria.php", "q="+id); // can I do something like this? how?
    });
});

Ответы [ 3 ]

2 голосов
/ 23 мая 2011

Да, вы можете сделать это, но .load() - неправильный метод для работы..load() используется для загрузки HTML в определенный элемент DOM.

Я предлагаю вам getcategoria.php вернуть объект JSON (используйте PHP json_encode), а затем используйте $.getJSON(), чтобы получить его, проанализировать и использовать по своему усмотрению.

$.getJSON("getcategoria.php", "q="+id, function(data){
  // data is your JSON object, use it how you wish
});
0 голосов
/ 23 мая 2011

И не забудьте установить header('content-type: application/json') в вашем файле getcategoria.php

0 голосов
/ 23 мая 2011

Вы можете использовать метод jQuery getJSON () , чтобы вернуть строку JSON, которую затем можно будет повторить.

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

  $.getJSON('ajax/test.json', function(data) {
  var items = [];

 $.each(data, function(key, val) {
   items.push('<li id="' + key + '">' + val + '</li>');
 });

  $('<ul/>', {
   'class': 'my-new-list',
   html: items.join('')
  }).appendTo('body');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...