2012-05-17 88 views
1

好吧,所以我使用蛋糕PHP 2.0..just開始使用它,所以我是一個總noob。我想使用對話框來顯示應用程序的一些消息,所以我可以包含必要的JavaScript文件和CSS的jQuery UI。Cakephp 2.0實現jQuery UI

但是,當我定義函數時,它不起作用,而是當我查看源代碼時,定義函數的腳本塊看起來不完整,因爲結束標記''未突出顯示。我希望我有道理。這裏是代碼片段:

<script> 
$(function() { 
    $("#dialog").dialog(); 
}); 
</script> 
<div id="dialog" title="Basic dialog"> 
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p> 
</div> 

in'index.ctp'。 我敢肯定,js源文件正確加載 我從jqueryUi網站上撿起它。如果能夠幫助我開始在CakePHP2.0中編寫javascript,我將非常感激。謝謝你

+0

我得到它的工作..我需要在該對話框中顯示一個視圖。我得到了這個名爲../users/login.ctp的登錄視圖。但我不使用js helper。我該怎麼做? –

回答

1

你應該考慮使用蛋糕的blockElement「迷你觀點」。爲此我會使用一個元素。

把這樣的東西放在app/view/Elements/loginDialog.ctp中。我將在下一部分解釋變量的位置。

<div id="dialog" title="Basic dialog"> 
<?php echo $this->Form->create($ModelName); ?> 
<?php 
    $this->Form->input('username'); 
    $this->Form->input('password'); 
    ?> 
<?php $this->Form->end('Login'); ?>  
</div> 

在你的app/View/ControllerName/action_name.ctp中,包含這樣的內容。請注意,我可以傳入變量(就像我用於第一個Form參數的變量)。

//in the view file 
echo $this->element('loginDialog', array('ModelName'=>'User')); 

最後,您需要添加js。你可以把它放在你的app/View/Layout/default.ctp中。讓我們只是說,例如,你有一個導航裏面的登錄鏈接,你想觸發這個對話框:

<script> 
$(document).ready(function(){ 
    $("#loginNavLink").on("click", function(event){ 
    $('#dialog').dialog(); 
    });  
}) 
</script> 

希望這有助於!

+0

非常感謝Todd,你的解決方案真的很有幫助!很高興看到人們回答這樣的老問題。幫助提高我對cakePHP的理解!再次感謝:D –

+0

沒問題!我也在學習蛋糕。所以,相信我,我明白這些文檔有多混淆/缺乏! – Todd