オートコンプリートの結果は選択したチームに依存するため、ajax を使用する必要があります。jqueryで次のようなもの:
var team = $('#teamdropdown').find(":selected").text();
$.ajax({
type: "POST",
url: 'http://domain.com/playersdata',
data: {'team':team},
success: function(data){
console.log(data);
//put data in for example in li list for autocomplete or in an array for the autocomplete plugin
},
});
そして、プレイヤーデータページ(コントローラーまたはモデル)のケーキでは、このようなものです。
if( $this->request->is('ajax') ) {
$arr_players = $this->Players->find('all', array('conditions'=>array('team'=>$this->request->data('team')))); //pr($this->request->data) to get all the ajax response
echo json_encode($arr_players);
}
また、ヘッダーを json 応答に設定し、$this->layout = null; レイアウト tpl を削除します。
別の解決策は、php で json_encode を使用し、それを js-code のように渡すことです。
<script>var players = <?php echo json_encode($array_players_with_teams); ?>; </script>
このソリューションは、少量のデータに対してのみ興味深いものです。チームとプレーヤーを含む大きなデータベースがある場合、これはお勧めしません。なぜなら、ほんの少しだけ必要な場合に、このすべてのデータをロードする必要があるからです...私はしませんでしたコードをテストする必要はありませんが、先に進むのに役立つはずです...
幸運を!