scriptaculous.js フレームワークの Ajax.autocompleter メソッドを使用してオート コンプリート ボックスを実装しています。
これはオートコンプリート ボックスであり、自動提案されたエントリが入力される div です。
<?php echo $form->create('Share', array('url' => '/forms/share')); ?>
<label for="shareWith">Share Form with</label>
<input type="text" id="autocomplete" name="autocomplete_parameter"/>
<div id="autocomplete_choices" class="autocomplete"></div>
<input type="hidden" id="sharedUserId" name="sharedUserId"/>
<?php echo $form->end('Share');?>
これは、自動提案されたリストを取得し、フォームの非表示フィールドに格納されている選択されたエントリの ID を取得する JQuery 関数です。
new Ajax.Autocompleter("autocomplete", "autocomplete_choices",
"http://localhost/FormBuilder/forms/autoComplete",
{
tokens: ',',
afterUpdateElement : getSelectedId
}
);
function getSelectedId(text, li) {
$("#sharedUserId").val(li.id);
}
複数のエントリを選択した場合、それらの値を送信する方法は? 選択した要素の配列を取得し、その配列を非表示フィールドとして保存できるように、配列を非表示フィールドとして使用できますか?