Передача результата из .getJSON () в другую функцию приводит к неопределенности - PullRequest
1 голос
/ 31 января 2011

Всем доброго времени суток,

Я извлекаю некоторые данные из базы данных (с помощью сценария PHP), используя метод .getJSON () jQuery.Это все хорошо, данные возвращаются просто отлично и, как и ожидалось.Проблема возникает, когда я пытаюсь передать данные во вторичную функцию, независимо от того, как я пытаюсь получить доступ к значениям этих данных, они возвращаются как неопределенные.У меня такое чувство, что я упускаю что-то очень простое, но после долгих проб и ошибок я прихожу к SO с просьбой предоставить дополнительный набор глаз.

Вот простой пример кода JavaScript.

  function fnCheck_Vis(Row, sField, sMode)
  {
    sField = sField+"_vis";
    sTest = Row.sField.val();
    alert(sTest); // Comes back as undefined.
  }

  $(document).ready(function()
  {
    $("#btnSearch").click(function()
    {
      $("#divResults").empty();
      var ssearch = $("#ssearch").val();
      var i = 0;
      $.getJSON("get_results.php?keywords=" + ssearch,
      function(Data)
      {
        var iRec = 0;
        $.each(Data, function(i, Row)
        {
          fnCheck_Vis(Row, "slinkpic1", "Int");
          var content = Row.slast;
          $("#divResults").append(content);
          iRec++;
        });
        alert(iRec + " records retrieved using AJAX.");            
      });
    });
  });

Первый фрагмент функции fnCheck_Vis () работает нормально, и к имени поля добавляется _vis, это правильное поведение.Независимо от того, как я пытаюсь получить доступ к этому члену в наборе данных (Строка), я не могу получить значение обратно.

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

Спасибо,

Николай

1 Ответ

3 голосов
/ 31 января 2011

Похоже, вы хотите получить доступ к свойству Row, имя которого хранится в sField, а не к его фактическому sField свойству. Попробуйте:

function fnCheck_Vis(Row, sField, sMode)
{
    sField = sField + "_vis";
    var sTest = Row[sField];
    alert(sTest);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...