如何在phpFox
,中返回 JSON 数据ajaxCall
?
在phpFox
我使用$.ajaxCall('samplemodule.function' 'data=test');
如何返回 JSON 数据?以及如何在任何 js 函数中处理该数据。
在文件 /module/samplemodule/component/ajax/ajax.class.php 中,创建一个名为 function 的函数(根据您的示例)。
在该函数中,使用它来将数据返回给您正在调用 ajax 的 JS:
$this->call('var myJSONObject=' . json_encode('Your Data Here'));
或者发送一些更有趣的东西,而不是 data=test,让 userId=(他们的用户 ID)像这样:
$iUserId = Phpfox::getLib('request')->getInt('userId');
$aUser = $aUser = Phpfox::getService('user')->getUser($iUserId);
$this->call('var aUser =' . json_encode($aUser));
现在,您将 aUser 设置为 JSON 对象,其中加载了用户的信息。
我认为问题在于您对 ajax 调用的工作方式感到困惑。在 ajax 调用中,您的 JS 代码将向服务器发送请求并继续执行剩余的 javascript 代码,而不管服务器中发生了什么。所以你要做的是从 ajax 调用中返回代码:
JS 代码 -> Ajax 调用 -> 服务器中的进程 -> JS 代码
在那个逻辑上,最后一个 JS 代码将调用一个 javascript 函数,其信息取自“服务器中的进程”阶段,您可以调用一个函数并将参数传递给该函数,如果您愿意,这些参数可能是 JSON 对象。
我在 phpfox (ajax call + call JS function with JSON param) 中制作了一个示例,希望对您有所帮助