私は、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);
}
複数のエントリを選択した場合、その値を送信するとしますか? 私は選択された要素の配列を持つことができ、その配列を隠しフィールドとして保存できるように、配列を隠しフィールドとして使用できますか?しかし、あなたの質問に関連していない
質問には関係ありませんが、同じページでscriptaculous + prototypeとjQueryの両方を使用していますか?同じWebサイトで2つのJS Frameworkを使用するのはなぜですか? 1つでは不十分ですか? –
は以前はjquery ..を使ってコード化されていましたが、自動完全機能を実装するには、scriptaculousフレームワークが必要でした – Angeline