多くの調査と試行錯誤の後、これは私にとってはうまくいきます。
これが何をするか:
ユーザーはこのコードの前に会社を選択しました (表示されていません)。
以下のオートコンプリートには contact_name が添付され、company_id も渡されます。
remote.php は、部分的な検索条件を満たし、指定された会社に属する連絡先の ID と値の両方の配列を返します。ユーザーが値をクリックすると、連絡先の名前がオートコンプリートのフィールドに配置され (特別なコードはなく、オートコンプリートが自動的に実行します)、id が contact_id フィールドに配置されます。
$( "#contact_name" ).autocomplete({
ソース: 関数 (リクエスト、レスポンス) {
$.getJSON ('remote.php',
{ term: request.term, company_id:$('#company_id').val() },
応答 );
}、
select: function( イベント, ui ) {
$( "#contact_id" ).val(ui.item.id );
}
});
remote.php の簡略化されたバージョンの外観は次のとおりです。
$myDataRows = 配列 ();
$search = addslashes($_REQUEST['term']);
$company_id = addslashes($_REQUEST['company_id']);
$sql = "SELECT c.contact_id as `id`, contact_name as`value` FROM 連絡先 c
WHERE c.company_id = '$company_id' and c.contact_name LIKE '%$search%' ";
$result = mysql_query ($sql);
while ($row = mysql_fetch_assoc($result)) {
array_push($myDataRows, $row);
}
$ret = json_encode ($myDataRows);
エコー $ret;