1

私は Cakephp 2.1 を問題なく使用しています。jquery を使用して、フォームをタブで分割したいと考えています。すでにケーキの外でjqueryを使用しており、タブのデモが機能しています。http://jqueryui.com/demos/tabs/
また、jquery を webroot フォルダから cakephp で利用できるようにしました。

ProjectsController.php

public $helpers = array('Js' => array('Jquery'));

add.ctp (一番最後の行)

echo $this->Js->writeBuffer(); // Write cached scripts

ビューでjqueryをどこでどのように呼び出す必要がありますか? デモに似たものを使用する必要があることはわかっています。

<script>
        $(function() {
            $( "#tabs" ).tabs();
        });
    </script>

しかし、私の見解ではどこでそれを行うべきか、シンタックスがわかりません。

誰でも助けることができますか?

どうもありがとう !

これは私の完全なadd.ctpの場合

<div class="projects form">
<?php echo $this->Form->create('Project');?>

<fieldset>
    <legend><?php echo __('Add Project'); ?></legend>
<?php
            $arr_pr_subject = Configure::read('AR_SUBJECT'); 
            $arr_pr_status = Configure::read('AR_STATUS'); 
            $arr_pr_payment = Configure::read('AR_PAYMENT'); 
            $arr_pr_country = Configure::read('AR_COUNTRY'); 
            echo $this->Form->input('name', array('label' => 'Name:'));
            echo $this->Form->input('pr_subject', array('label' => 'Subject:', 'options' => $arr_pr_subject));
            echo $this->Form->input('pr_country', array('label' => 'Country:', 'options' => $arr_pr_country));
            echo $this->Form->input('pr_number', array('label' => 'ASC Project Number:'));
            echo $this->Form->input('pr_status', array('label' => 'Status:', 'options' => $arr_pr_status));
            echo $this->Form->input('client_id', array('label' => 'Client:', 'options' => $clients));
            echo $this->Form->input('pr_client_number', array('label' => 'Client Project Number:'));
            echo $this->Form->input('exec_id', array('label' => 'Sales Executive:', 'options' => $execs));
            echo $this->Form->input('pr_start', array('label' => 'Est. Start Date:'));
            echo $this->Form->input('pr_end', array('label' => 'Est. End Date:'));
            echo $this->Form->input('pr_notes', array('label' => 'Notes:'));
            echo $this->Form->input('pr_payment', array('label' => 'Payment options:', 'options' => $arr_pr_payment));
?>
</fieldset>
<?php echo $this->Form->end(__('Submit'));?>
</div>
<?php
echo $this->Js->writeBuffer(); // Write cached scripts
?>
4

1 に答える 1

2

<head>に、jquery と jqueryui を含めます。

<script src="/js/path/to/jquery.js" type="text/javascript"></script>
<script src="/js/path/to/jqueryui.js" type="text/javascript"></script>

次に、そのすぐ下に、すべてのコードを保持するための別の js ファイルを含めます

<script src="/js/myscripts.js" type="text/javascript"></script>

そのファイル (myscripts.js) に、jQuery コードを入れます。

$(function() {
  $( "#tabs" ).tabs();
});

次に、jQuery Tabs 構文に一致するようにフォーム入力を構成します

<form action="...">
<div id="tabs">
  <ul>
    <li><a href="#tab1">Tab 1</a></li>
    <li><a href="#tab2">Tab 2</a></li>
  </ul>
  <div id="tab1">
    <!-- Tab 1 inputs in here -->
  </div>
  <div id="tab2">
    <!-- Tab 2 inputs here -->
  </div>
</div>
</form>
于 2012-05-09T21:21:24.567 に答える