1

好的,所以我正在使用 cake PHP 2.0 ..刚开始使用它,所以我完全是菜鸟。我想使用对话框来显示应用程序的一些消息,这样我就可以为 jquery UI 包含必要的 javascript 文件和 css。

但是当我定义函数时,它不起作用,而是当我查看源代码时,我定义函数的脚本块看起来不完整,因为结束标记 '' 没有突出显示。我希望我说得通。这是代码片段:

<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>

在“index.ctp”中。我确定 js 源文件已正确加载,我是从 jqueryUi 站点获取的。如果有人能帮助我开始在 cakePHP2.0 中编写 javascript,我将不胜感激。万分感谢

4

1 回答 1

1

您应该考虑使用 cake's 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 中,包含类似这样的内容。请注意,我能够传入变量(就像我用于第一种形式参数的变量一样)。

 //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>

希望这可以帮助!

于 2013-03-22T11:04:19.317 回答