2013-04-25 78 views
0

我想在Joomla組件內部構建我的第一個json表單提交。PHP/Joomla - 從Joomla MVC控制器發送html輸出到jQuery AJAX

是否有任何特殊的編碼或條件從Joomla控制器發送HTML響應?

我正在使用2.5 Joomla MVC。這裏有一些測試/觀察 -

1)表單提交和響應已經單獨測試,並按預期工作。我有一個提交給服務器端PHP文件的分離式PHP文件,該文件接受jSON數據併發送HTML響應,客戶端從響應中正確更新。

2)我在我的Joomla組件中提交了工作表單。它是一個標準的客戶端表單提交,提交給服務器端控制器,屏幕從controller.php文件中的腳本相應刷新。

3)當我添加了jQuery/AJAX表單提交($ .post的)中的數據被添加到在後端數據庫和客戶端的JavaScript控制檯顯示的jQuery腳本運行到完成無論其 -

我沒有收到我的控制器echo'd輸出(簡單的回聲腳本從PHP - >回聲'這是一個測試';)

當我用一個硬編碼字符串(而不是AJAX數據結果輸出)客戶端按預期進行更新。當我用[data]替換硬編碼的字符串時,它不起作用。作爲一個額外的測試,我只是簡單地回顯一個簡單的字符串,以便測試控制器,而簡單的字符串不會返回值。

結論 - jQuery/AJAX正在工作,但PHP控制器不是。

+0

在幾個浪費時間閱讀其他人的問題/答案後發現它。最終我通過使用die([value])命令併發回原始html來解決此問題。我的理解是,這是做這件事的「黑客」方式。我嘗試使用view.raw.php但得到一個類未找到錯誤。希望能夠提供關於如何正確使用view.raw.php的指示的任何人 - >謝謝! – 2013-04-26 00:51:24

+0

查看使用AJAX的核心組件:Finder,Languages和Media,特別是在'controllers/*。json.php'文件中,這些文件通過'&format = json'查詢調用 – 2013-04-26 08:43:13

回答

0

它應該足以將& format = raw添加到url,這將指示Joomla!通過組件輸出,而不是添加整個模板/頁面/模塊。

然而,die()並不好,只需在控制器中調用exit就可以達到同樣的效果。有時候,當你啓用了SEF和基於參數數量的router.php解析器時,這可能是最好的選擇。

相關問題