2011-08-08 7 views
0

ユーザーが国によって検索結果を制限できる検索機能を自分のホームページに作成しようとしています。CakePHP:要素問題でhomepgeのドロップダウンを作成する

すべてが自分の投稿/インデックスコントローラーで動作し、国別リストがfind( 'リスト)によって自動的に取得されます。

ただし、ホームページでは、国のドロップダウンは空のままです。いくつかのコードの下には:?

<?php $this->requestAction('countries/getCountries');?> 
<?php 
echo $this->Form->create('Post', array(
    'url' => array_merge(array('controller' => 'posts','action' => 'index'), $this->params['pass']) 
    )); 
echo $this->Form->input('title', array('div' => false, 'empty' => true, 'label' => false)); 
echo $this->Form->input('country_id'); 
echo $this->Form->submit(__('Search', true), array('div' => false)); 
echo $this->Form->end(); 

>

getCountries: 私は

homesearch.ctpのELEMENT(requestActionをコメントから遅い」を省略してください、ありがとう)でrequestActionを使用してドロップダウンを取得しよう国のコントローラでの機能:

(PagesControllerなどでloadmodule( 'Country')にダイビングする前に)私は間違ったことをやっている、デバッグとして教えてrequestAction関数から戻ってデータがないです。

あなたはどうやってこの牛を洗うのですか?ありがとう!

答えて

0

...(requestActionをコメントから遅い」を省略してください、ありがとう)

改善のためにperforma NCE、交換してください:

<?php $this->requestAction('countries/getCountries');?> 

で:

<?php $this->viewVars['countries'] = ClassRegistry::init('Country')->find('list'); ?> 

このアプローチを第2の要求を生成しません。

+0

チップをありがとう。これはまだ動作しません。ドロップダウンは空のままです。 – ChrisDK

+0

CakePHPに値を自動的に(FormHelperに手動で指定しなくても)取得させたい場合は、変数を '$ this-> viewVars'に入れる必要があります)。 – deizel

+0

地獄ええ!大統領のためのDeizel、それは動作します!ありがとう! – ChrisDK

0

と要素で

function getCountries(){ 
    $countries = $this->Country->find('list'); 
    if (!empty($this->params['requested'])) { 
    return $countries; 
    } else { 
    $this->set(compact('countries')); 
    } 
} 
<?php $countries = $this->requestAction('countries/getCountries');?>

男が、それは右の本にあります:http://book.cakephp.org/view/991/requestAction