1

さて、私はケーキ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」にあります。jqueryUi サイトから取得した js ソース ファイルが正しく読み込まれていることは確かです。CakePHP2.0 で JavaScript を書き始めるのに役立つ情報があれば、本当に感謝しています。ありがとうございます

4

1 に答える 1

1

Cake のブロックまたは要素の「ミニビュー」の使用を検討する必要があります。そのためには要素を使用します。

このようなものを 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 に答える