jQuery オートコンプリートに問題があります。基本的には検索バーがあり、探しているものを jQuery コードに入力すると、MySQL クエリを実行する php スクリプトが呼び出され、必要なものがすべて返され、それに応じてテキスト ボックスに入力されます。次に、そのオートコンプリートから受け取った値を取得し、それを別のオートコンプリートで使用して、さらにデータを入力します。注意が必要なのは、2 番目のクエリで取得する必要があるデータが、関係を共有する最初のクエリとは別のテーブルにあることです。私の質問は、これを行うには完全に別の関数が必要ですか、それとも単純に両方のクエリを 1 つの php スクリプトに入れて、最初のクエリからの情報を 2 番目のクエリに使用できるかということです。
どんな助けでも感謝します!
jQuery関数は次のとおりです。
$(function() {
/* $('#abbrev').val("");
*/
$("#q16_location16").autocomplete({
source: "location_query.php",
minLength: 1,
select: function(event, ui) {
$('#q16_location161').val(ui.item.LocationID);
$('#SystemName').val(ui.item.SystemName);
$('#SiteAddress1').val(ui.item.SiteAddress1);
$('#SiteAddress2').val(ui.item.SiteAddress2);
$('#SiteCPP').val(ui.item.SiteCPP);
$('#Contact').val(ui.item.Contact);
$('#SiteLocationHours').val(ui.item.SiteLocationHours);
}
});
});
およびphpスクリプト:
/* If connection to database, run sql statement. */
if ($conn)
{
$fetch = mysql_query("
SELECT Location.LocationID,
Location.SystemName,
Location.SiteAddress1,
Location.SiteAddress2,
CONCAT_WS(' ', Location.SiteCity, Location.SiteProvince, Location.SitePostalCode) AS SiteCPP,
CONCAT_WS(' ', Location.ContactName, Location.ContactPhone, Location.ContactEmail) AS Contact,
Location.SiteLocationHours,
CONCAT_WS(' ', SystemName, SiteNameLocation, SiteAddress1, SiteCity, SiteProvince, SitePostalCode) as expr2
FROM Location
WHERE Location.SystemName like '%".mysql_real_escape_string($_GET['term'])."%'
OR Location.SiteNameLocation like '%".mysql_real_escape_string($_GET['term'])."%'
OR Location.SiteAddress1 like '%".mysql_real_escape_string($_GET['term'])."%'
OR Location.SiteCity like '%".mysql_real_escape_string($_GET['term'])."%'
OR Location.SiteProvince like '%".mysql_real_escape_string($_GET['term'])."%'
OR Location.SitePostalCode like '%".mysql_real_escape_string($_GET['term'])."% '
LIMIT 0,15");
/* Retrieve and store in array the results of the query.*/
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['LocationID'] = $row['LocationID'];
$row_array['value'] = $row['expr2'];
$row_array['SystemName'] = $row['SystemName'];
$row_array['SiteAddress1'] = $row['SiteAddress1'];
$row_array['SiteAddress2'] = $row['SiteAddress2'];
$row_array['SiteCPP'] = $row['SiteCPP'];
$row_array['Contact'] = $row['Contact'];
$row_array['SiteLocationHours'] = $row['SiteLocationHours'];
array_push($return_arr,$row_array);
}
}
/* Free connection resources. */
mysql_close($conn);
/* Toss back results as json encoded array. */
echo json_encode($return_arr, $return_arr2);
したがって、ユーザーが「New York」と入力すると、そのオプションを選択できます。この例では、ニューヨークの ID は 5 です。ニューヨークのさまざまな通りを選択するクエリもありますが、これは別のテーブルにあります。ただし、私の通りのテーブルには、ニューヨークのすべての通りの値が 5 になる "LocationID" 列があります。そのIDを持つ別のテーブル。新しい関数の作成に関して複数のことを試しましたが、その ID を関数に渡す方法がわかりません。
ありがとう