JQuery и возвращенный HTML - PullRequest
1 голос
/ 18 марта 2011

Это, наверное, легкая задача, но я застрял.

У меня есть функция, которая создает таблицу:

function getTable(someJSON, someGroup){
  var table = $("<table>").attr("class", "someTable");
  var row1 = $("<tr>");
  var cell1 = $("<td>").text(someJSON.someThing);
  row1.append(cell1);
  var cell2 = $("<td>").text(someJSON.someThingElse);
  row1.append(cell2);
  var row2 = $("<tr>");
  row2.append("<td>Something</td><td>Something else</td>");
  table.append(row2);
  var row3 = $("<tr>").append(getRow(someJSON, someGroup));
  table.append(row3);
  return table;
}

Таблица возвращается нормально, но в последнем ряду ничего нет.

getRow выглядит так:

function getRow(someJSON, someGroup){
  $.ajax({
    url: 'getRow.php',
    data: ({
      DM: JSON.stringify(someJSON),
      someGroup: someGroup
    }),
    async: false
  })
}

Я проверил с FireBug, и getRow.php возвращает действительный результат, такой как: 123234, после того, как он это сделает, но я буду поражен, если смогу получить его в ... Я бился с ним и в более ранней итерации к строке было добавлено что-то вроде [object Object].

Любая помощь будет принята с благодарностью.

Приветствия

Дом

Ответы [ 3 ]

2 голосов
/ 18 марта 2011

getRow ничего не возвращает - поэтому ваш последний ряд пуст:)

Но даже после того, как вы это исправите - вы добавляете его в TR без TD внутри, поэтому он не появится в нужном месте на экране

0 голосов
/ 18 марта 2011

Как сказал Дон-Джой, ваша функция JavaScript getRow ничего не возвращает.У него нет оператора return.Вам нужно изменить его на:

function getRow(someJSON, someGroup){
  var a = $.ajax({
    url: 'getRow.php',
    data: ({
      DM: JSON.stringify(someJSON),
      someGroup: someGroup
    }),
    async: false
  });
  return a.responseText;
}

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

0 голосов
/ 18 марта 2011

Дон-Джой был прав, но я не прочитал его ответ, я изменил getRow на:

function getRow(someJSON, someGroup){
  var returnedText;
  $.ajax({
    url: 'getRow.php',
    data: ({
      DM: JSON.stringify(someJSON),
      someGroup: someGroup
    }),
    dataType: "html",
    async: false,
    success: function (data) {
      returnedText = data;
    }
  });
  return returnedText;
}

теперь работает над лечениемСпасибо за указатель Don-Joy!

Ура,

Дом

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