多くの jquery および ajax オートコンプリート スクリプトを試しました。それらのいずれかを必要なものに統合しようとするのは非常に難しいと感じています。
私が達成しようとしていることを説明しましょう。
オートコンプリート ボックスが 2 つ必要です。2 番目は 1 番目からデータをプルします。また、両方とも複数のエントリをサポートする必要があります。DB にデータを照会します。今のところローカル データを使用していますが、将来変更する可能性があります。
State と City を例として使用します。
私は mysql DB を持っており、それには以下が含まれます:-id、state、city。JSON 形式を使用して結果を取得していました。
したがって、最初のボックスで 2 つの州を選択するとします。私はスペインにいるので、マラガとカディスと言います。次に、City の 2 番目のオートコンプリート ボックスで、DB にすべての Cities を照会する代わりに、マラガとカディスの Cities のみの結果のみを返します。
私が使用したスクリプトには、これを達成するのに十分な詳細な説明がないようです。私は PHP に精通していますが、JS-jQuery/JSON/Ajax に関してはまったくの初心者です。最初のオートコンプリート ボックスを機能させて 2 つの状態をプルできる程度まで進歩しましたが、その後は前進できないようです。
私が現在使用していたスクリプトは、Drew Wilson の自動提案でした。http://code.drewwilson.com/entry/autosuggest-jquery-plugin
私が達成しようとしていることが、このスクリプトで実行できる場合は素晴らしいです。また、他の提案スクリプトやアイデアも受け付けています。
これが私のphpスクリプトのコードの一部です。(p3.php) どこかで行き詰まったようで、必要な方法で動作しません。ただし、複数の州を選択します。少なくとも良いスタート。
<?php
// DB connection details (removed from here)
//DB Connection
$dblink_main = mysql_connect($host_main,$user_main,$pass_main);
$selectdb_main=mysql_select_db($database_main,$dblink_main);
// changed default q in autosuggest.php!
$input = $_GET["plkup"];
//$input2 = $_GET["clkup"];
//$province2 = $_GET["province2"];
//$province = 'Cadiz';
//$province2 = "Cadiz";
$data = array();
// query your DataBase here looking for a match
$query = mysql_query("SELECT distinct province FROM spanish_regions WHERE province LIKE '%$input%'");
// query 2 - doing this wrong!
//$query2 = mysql_query("SELECT city, province FROM spanish_regions WHERE province LIKE '%$input2%'");
while ($row = mysql_fetch_assoc($query)) {
$json = array();
$json['province'] = $row['province'];
$data[] = $json;
}
//while ($row = mysql_fetch_assoc($query2)) {
//$json = array();
//$json['city'] = $row['city'];
//$data[] = $json;
//}
header("Content-type: application/json");
echo json_encode($data);
?>
HTML コード。
<form action="">
<label>Province: </label><input type="text" id="province" name="" size="20" value="" autocomplete="off" />
</form>
<form action="">
<label>City: </label><input type="text" id="city" name="" size="20" value="" autocomplete="off" />
</form>
<script language="javascript" type="text/javascript">
jQuery(function(){
jQuery( "#province" ).autoSuggest("p3.php", {selectedItemProp: "province", selectedValuesProp: "province", searchObjProps: "province", queryParam: "plkup", minChars: 1, matchCase: false});
});
// Below does not work. Again I am probably going around this wrong way.
jQuery(function(){
jQuery( "#city" ).autoSuggest("p3.php", {selectedItemProp: "city", selectedValuesProp: "city", searchObjProps: "city", minChars: 1, queryParam: "clkup", matchCase: false});
});
</script>
最初に選択した状態だけでデータベースフィルタリングからデータを取得するために2番目のオートコンプリートボックスを取得する方法が本当にわかりません。どんなアイデアや解決策、考えも大歓迎です。
マークに感謝します。