2

ここで私の問題の最初の部分について、2番目の問題について言及するのを忘れた人に助けてもらいました。ユーザーがオートコンプリート フィールドから値を選択した後、値 ID を隠しフィールドに入力して、PHP に渡してデータベースに挿入できるようにします。

これが私が達成しようとしていることの内訳です:

  1. ユーザーがオートコンプリート フィールドから会場を選択します。
  2. 会場が選択されると、会場の電話番号、住所、および Web サイトがオートコンプリート フィールドの下に表示されます。データベース内のレコードの ID は、その値として隠しフィールドに渡されます。

検索しましたが、何も見つかりませんでした。誰かが私を正しい方向に導くことができますか?

ありがとう

4

2 に答える 2

6

標準のオートコンプリート プラグインを使用していると仮定しています: http://docs.jquery.com/Plugins/Autocomplete

あなたのhtmlにこれがある場合:

<input type='text' id='foo' />
<input type='hidden' id='bar' />

これを JavaScript として使用する必要があります。

$(document).ready(
function(){
    var data = "1,address 1,phone 1|2,address 2,phone 2".split('|');
    $("#foo").autocomplete(data,{formatItem:function(item){
        return item[0].split(',').slice(1).join(' ');}
    }).result(function(event,item){
        $("#bar").val(item[0].split(',')[0]);
    });
});

あなたがしていることはこれです:

  1. ソース データから ID を取得するための formatItem オプションを追加します。
  2. 非表示フィールドに ID を設定する結果ハンドラーを追加します。

これが役立つかどうか教えてください。

于 2010-01-14T04:46:07.790 に答える
2

このレンガの壁にもぶつかったので、ここでいくつかの助けを借りて、さらに簡単な解決策を見つけたと思います

  $("#fieldA").autocomplete({
    source: '<%=Url.Action("functionName", "ControllerName") %>',
    select: function(e,ui) { $('#fieldB').val(ui.item.objectName) }, 
  });

fieldAは、ソース ファイルからオートコンプリートを行います。私はControllerName内のfunctionNameを取る ASP.net MVC を使用しています(もちろん、必要な Web リンクの URL を貼り付けることもできます)。Web ページは、個別の項目フィールドに分割された行のリストを返します。唯一の制限は、返されるフィールドの 1 つで「」という名前が付けられることです。select を使用すると、 ui.itemオブジェクトから他のすべてのフィールド (ui.item の末尾にあるオブジェクト名) を分離し、必要な数のフィールドに配置できますオートコンプリート フィールドに自動的に入力されます。

于 2012-03-21T18:36:13.223 に答える