我嘗試從CakePHP($this->elements()
)加載元素與jQuery函數,但我有問題找出這些元素的路徑。我在這個網站上發現了其他一些話題,但他們真的沒有幫助我。CakePHP元素的jQuery加載()路徑()
根是/webroot不是嗎?我試過.load('../View/Elements/Summoners/comments.ctp');
和其他一些路徑,但他們沒有解決:/
我嘗試從CakePHP($this->elements()
)加載元素與jQuery函數,但我有問題找出這些元素的路徑。我在這個網站上發現了其他一些話題,但他們真的沒有幫助我。CakePHP元素的jQuery加載()路徑()
根是/webroot不是嗎?我試過.load('../View/Elements/Summoners/comments.ctp');
和其他一些路徑,但他們沒有解決:/
不要從jQuery加載元素,而是調用一個控制器方法來加載元素。例如。 jQuery中調用類似:
.load(/controller/ajax_action/);
然後在對應於ajax_action控制器,你可以讓它加載它正在調用的視圖或加載元件像這樣:
public function ajax_action() {
$this->renderElement('/elements/element_name.ctp');
}
只是一個澄清的說明:指定的jQuery「路徑」是一個URL *不*文件系統路徑。這是OP看起來很困惑的地方。 – Chad 2012-02-12 21:12:05
@Chad:我認爲OP認爲「因爲我已經有了元素爲什麼不直接加載它」而沒有意識到你在這裏提到的東西。我想所有的意圖和目的,OP可以創建一個符號鏈接到webroot中的elements目錄並加載它們。但它可能不是一個好主意。 – 2012-02-12 21:22:01
他不應該像以前一樣將PHP代碼拉入客戶端。你的解決方案會給他解析PHP(輸出的HTML),這是他應該做的,而不是得到實際的PHP源代碼。因此,將PHP源代碼鏈接到'webroot'會是一個糟糕的想法。 – Chad 2012-02-12 22:55:04
上述代碼不工作:
.load(/controller/ajax_action/);
應該是:
.load('/controller/ajax_action/');
...和
public function ajax_action() {
$this->renderElement('/elements/element_name.ctp');}
應該是...
public function ajax_action() {
$this->render('/elements/element_name');}
不能混合jQuery和PHP代碼。您需要製作一個使用jQuery'.load()'函數調用的動作/視圖,該函數輪流呈現您的元素。 – 2012-02-11 20:24:07
爲什麼你要使用jQuery來加載元素?爲什麼簡單地在你的視圖中放置'$ this-> Element('elementName');'不是一個選項? – Oldskool 2012-02-12 16:34:30