2009-08-05 5 views
0

私は、アプリケーションのユーザーのリストが入力されたオートコンプリートボックスを持っています。ユーザーをリストするボックスでうまくいきます。cakephpのオートコンプリートボックスから複数のエントリーを選択するには?

ただし、1人のユーザーしか選択できません。リストから複数のユーザーを選択する方法は? また、選択したユーザーの名前を変数または配列に保存する方法もありますか?

EDIT

私は、CakePHPフレームワークの組み込みのオートコンプリート機能を使用しています。これは、自動補完テキストボックスを生成するコントローラ内のアクションです。

function autoComplete() 
{ 
    $this->set('users',$this->User->find('all',array(
            'fields'=>array('User.id','User.name'), 
    'conditions'=>array('User.name LIKE' => $this->data['User']['name'].'%')))); 

    $this->layout = "ajax"; 
} 

これはauto_complete.ctpファイル

<ul> 
    <?php foreach($users as $user): ?> 
     <li><?php echo $user['User']['name']; ?></li> 
    <?php endforeach; ?> 
</ul> 

であり、これは、私はオートコンプリートボックス持っている図である:オートコンプリートボックスで

<?php echo $form->create('User', array('url' => '/forms/share')); ?> 

    <?php echo $ajax->autoComplete('User.name', '/forms/autoComplete');?> 

<?php echo $form->end('Share');?> 

を、私はできる午前1つのユーザー名のみを選択します。カンマまたはスペース区切り記号を使用して複数のユーザーを選択するにはどうすればよいですか?

+0

オートコンプリートボックスがどのように表示され、どのように表示されるかを知ることができます。たとえば、それはajax呼び出しによって生成され、HTMLオーバーレイとして表示されるのか、それともフォームコントロールを使用する複数選択ボックスですか? –

答えて

1

私はAjaxHelperが複数選択の自動補完ボックスを作成することはできないと考えています。私はあなた自身のソリューションをロールバックする必要があります恐れている。あまりにも面倒ではないはずのAjaxを使って素敵なリストを手に入れているからです。

スタックオーバーフロータグボックスのようなものが必要な場合は、ヘルパーにいくつかのJavascriptコールバックを置くことで、おそらく自分で行う必要があるチェックボックスベースのリストを探していることができます。

+0

スタックオーバーフロータグボックスのようなものが必要です。あなたはそれをどうやってやるのかもっと教えてくれますか? – Angeline

+0

コールバックのオプションを確認してください:http://book.cakephp.org/view/211/Callback-Optionsクイック提案には、「前」および「完全」コールバックが含まれます。可能であれば、最後の「タグ」のみを含むようにサーバーに送信される要求を変更するか、またはサーバーが要求の最後の部分のみを考慮させるようにします。変数に送る前にテキストフィールドの内容を保存し、最後に新しい結果と一緒にステッチします。これらの行に何かがありますが、実行可能かどうか、独自のスクリプトを動かす方が速くてきれいであるかどうかわかりません。 – deceze

+0

ok、他の機能に渡すことができるように、変数の自動候補リストから選択した項目を保存する方法を教えてください。 – Angeline

関連する問題