【发布时间】:2013-04-19 20:21:26
【问题描述】:
我正在尝试在 Joomla 组件中构建我的第一个 JSON 表单提交。
从 Joomla 控制器发送 HTML 响应是否有任何特殊编码或条件?
我正在使用 2.5 Joomla MVC。以下是一些测试/观察 -
1) 表单提交和响应已分别单独测试并按预期工作。我有一个单独的 PHP 文件,该文件提交到服务器端 PHP 文件,该文件接受 JSON 数据并发送 HTML 响应,客户端从响应中正确更新。
2) 我的 Joomla 组件中有一个工作表单提交。这是一个标准的客户端表单提交,提交到服务器端控制器,屏幕会从 controller.php 文件中的脚本相应地刷新。
3) 当我添加 jQuery/AJAX 表单提交 ($.post) 时,数据被添加到后端的数据库中,客户端 javascript 控制台显示 jQuery 脚本正在运行完成 -
我没有收到来自控制器的 echo 输出(来自 php 的简单 echo 脚本 -> echo 'this is a test';)
当我用硬编码字符串(而不是 AJAX 数据结果输出)替换输出的字符串时,客户端会按预期更新。当我用 [data] 替换硬编码字符串时,它不起作用。作为附加测试,我只是简单地回显一个简单的字符串以测试控制器,而简单的字符串没有返回值。
结论 - jQuery/AJAX 工作正常,但 PHP 控制器不工作。
【问题讨论】:
-
在浪费了几个小时阅读其他人的问题/回复后才弄清楚。最终我通过使用 die([value]) 命令并发回原始 html 解决了这个问题。我的理解是,这是这样做的“黑客”方式。我尝试使用 view.raw.php 但遇到类未找到错误。希望任何能够提供有关如何正确使用 view.raw.php 的说明的人 -> 谢谢!
-
看看使用 AJAX 的核心组件:Finder、Languages 和 Media,尤其是在
controllers/*.json.php文件中,这些是用&format=json查询调用的
标签: php model-view-controller joomla