0

我正在尝试在 Joomla 组件中构建我的第一个 JSON 表单提交。

从 Joomla 控制器发送 HTML 响应是否有任何特殊编码或条件?

我正在使用 2.5 Joomla MVC。以下是一些测试/观察 -

1) 表单提交和响应已分别单独测试并按预期工作。我有一个单独的 PHP 文件,该文件提交到服务器端 PHP 文件,该文件接受 JSON 数据并发送 HTML 响应,客户端从响应中正确更新。

2) 我的 Joomla 组件中有一个工作表单提交。这是一个标准的客户端表单提交,提交到服务器端控制器,屏幕会从 controller.php 文件中的脚本相应地刷新。

3)当我添加 jQuery/AJAX 表单提交($.post)时,数据被添加到后端的数据库中,客户端 javascript 控制台显示 jQuery 脚本正在运行完成但是 -

我没有收到来自控制器的回显输出(来自 php 的简单回显脚本 -> 回显“这是一个测试”;)

当我用硬编码字符串(而不是 AJAX 数据结果输出)替换输出的字符串时,客户端会按预期更新。当我用 [data] 替换硬编码字符串时,它不起作用。作为一个额外的测试,我只是简单地回显一个简单的字符串来测试控制器并且简单的字符串没有返回值。

结论 - jQuery/AJAX 可以工作,但 PHP 控制器不能。

4

1 回答 1

0

将 &format=raw 添加到 url 就足够了,这将指示 Joomla!通过组件输出而不是在其周围添加整个模板/页面/模块。

然而,虽然 die() 并不好,但只需在控制器中调用 exit 就可以达到同样的效果。有时,当您启用 SEF 和基于参数数量的 router.php 解析器时,这可能是最佳选择。

于 2013-04-26T07:42:17.923 回答