データベースから値を取得できたので、渡したいものをさらに指定したいと思います。
以下のイベント関数に反応する選択ボックスから、値(レコードのuid)を読み取り、それをajaxActionに渡します。
var uid;
$('#mySelectBox').change(function() {
arguments = $(this).attr('value');
var uri = '<f:uri.action arguments="{uid: '+uid+'}" action="ajax" controller="Mycontroller1" pageType="89657201" />';
jQuery.getJSON(uri, function(result) {
// do something
});
});
私はそれを議論で試しましたが、それが正しい方法かどうかはわかりません。さらに、Marcus Biesioroffが提案したように、JSを別のファイルに保存する必要がありますが、Fluidの方法ではなく、自分でURIを作成する必要があります。
私のajaxActionは次のようになります。
public function ajaxAction($uid) {
$dataFromRepo = $this->myRepository->findByUid($uid);
$resultArray = array(
"field1" => $dataFromRepo->getField1(),
"field2" => $dataFromRepo->getField2(),
"field3" => $dataFromRepo->getField3(),
"field4" => $dataFromRepo->getField4(),
);
return json_encode($resultArray);
}
uidが正しく渡されていないことは確かですが、他のすべては機能します。