вернуть данные из jquery $ .post - PullRequest
0 голосов
/ 20 июня 2010

Я хочу иметь простую функцию, где я могу вставить sqlQuery и получить ответ базы данных в формате json, например так:

  function ExecuteQuery(query){
    $.post("sql.php", { "query": query },
     function(data){ return data;  },
     "json");
   }

Ответ, который я получаю, не определен, я думаю, что неправильно понял что-то довольно простое, но я не знаю, кто-нибудь может дать мне подсказку?

Ответы [ 2 ]

1 голос
/ 20 июня 2010

Проблема в том, что вы хотите что-то, чего у вас нет :-) Вместо того, чтобы думать с точки зрения функции, которая возвращает значение, напишите себе функцию, которая принимает другую функцию как аргумент и вызывает его, когда данные доступны.

function ExecuteQuery(query, callback){
  $.post("sql.php", { "query": query },
   function(data){ callback(data);  },
   "json");
 }

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

ExecuteQuery("whatever", function(results) {
  // do something with "results"
});
0 голосов
/ 20 июня 2010

Вам нужно что-то сделать с данными - вы не можете просто вернуть их. Внешняя функция возвращается немедленно, но внутренняя функция возвращается позже, после обхода сервера. Попробуйте сделать alert(data), чтобы увидеть, как это работает.

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