CakePHPで顧客情報を管理するシステムを作成しています。
顧客情報を入力するのは、ClientsController.phpで行っています。
顧客は、企業に属するので企業情報を入れるClientCompanies.phpという別のコントローラーで企業情報を入力する仕組みにしました。
Ajaxで顧客情報のaddアクション内からClientsCompaniesコントローラー内のaddアクションを呼び出したいのですが、画面は呼び出されますが、変数が未定義(undefined Companies)というエラーがでます。
変数を$this->set~してから、renderすれば良いと思いますが、ClientsCompaniesのaddアクション内に記載した記述をコピーするのはスマートではないと思いましたので、何か方法があればご教示ください。
以下ソースコードです。(企業情報の検索や、ページネーション、モデルに記載した関数などがオリジナルのコードに含まれており、混乱させてしまうのでコードは省略しています)
顧客情報 ClientsController.php
PHP
1class ClientsController extends AppController { 2 public function add(){ 3 if ($this->RequestHandler->isAjax()) { 4 $this->render('/ClientCompanies/add',"ajax"); 5 } 6 }
顧客情報 入力フォーム add.ctp
PHP
1<?php 2echo $this->Form->create(); 3echo $this->Js->submit('企業情報を入力', array( 4 'success'=>$this->Js->get('#sending')->effect('fadeOut'), 5 'update'=>'#success' 6)); 7echo $this->Form->end(); 8?> 9<div id="success"></div> 10<?php echo $this->Js->writeBuffer(); ?>
企業情報 ClientCompaniesController.php
PHP
1class ClientCompaniesController extends AppController { 2 public function add(){ 3 $Companies = $this->ClientCompany->find('list'); 4 $this->set('Companies ', $Companies); 5 } 6}
企業情報 入力フォーム add.ctp
PHP
1<?php foreach($Companies as $comp):?> 2 <p><?php echo $comp;?></p> 3<?php endforeach;?>

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/20 06:53