【问题标题】:return data from jquery $.post从 jquery $.post 返回数据
【发布时间】:2010-06-20 16:35:41
【问题描述】:

我想要一个简单的函数,我可以在其中插入一个 sqlQuery 并获得一个 json 格式的数据库答案,如下所示:

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

我得到的回复是不确定的,我想我误解了一些非常基本的东西,但我不知道是什么,有人可以给我提示吗?

【问题讨论】:

标签: javascript jquery sql json


【解决方案1】:

问题是你想要一些你不能拥有的东西 :-) 与其考虑一个返回值的函数,不如给自己写一个接受另一个函数的函数> 作为参数并在数据可用时调用它。

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

现在,当您调用该函数时,您将向它传递一个函数,该函数可以获取服务器响应并对其进行处理。

ExecuteQuery("whatever", function(results) {
  // do something with "results"
});

【讨论】:

  • 那是我的第一个解决方案,但我认为我可以让它像一个返回函数。但是你有点解决了我的问题,现在我不需要再尝试了,谢谢!
  • 你不需要说function(data){ callback(data); },你可以说callback,不是吗?
  • 是的,如果你已经有了一个命名函数,那很好!
【解决方案2】:

您需要对数据做一些事情 - 您不能只返回它。外部函数会立即返回,但内部函数会在服务器往返之后稍后返回。试试alert(data) 看看它是如何工作的。

【讨论】:

  • 是的,它运作良好,但我想返回数据,我也尝试保存数据,但同样的问题
猜你喜欢
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 2011-07-19
  • 2018-06-08
相关资源
最近更新 更多