こんにちは、私はここに座って、次の問題について考えています。
次のようなテーブルを実行する自動提案検索エンジンがあります。
zipcode city sum
12345 town 5
入力される文字ごとにループを実行する JavaScript を使用して検索を実現します。その時点までは、都市名や郵便番号などの 1 つのキーワードしか検索できません。
今、私はこれらの両方を組み合わせて、ユーザーをこれらの両方のいずれかに制限せず、都市と郵便番号を入力しても見つかるようにしたいと考えています。
そのため、次を使用して各キーワードを分離したいと思います。
preg_split('/[\s]+/', $keywords);
これが現時点での問題です。この手段を使用すると、すべてのキーワードが配列に挿入されます。使い方:
HTMLには入力フィールドがあります。その下に、順序付けられていないリスト div があります。その div javascript では、search.php ファイルからの結果が自動的に追加されます。次のようになります。
include('../scripts/db_connect.php');
if (isset($_POST['search_term']) == true && empty($_POST['search_term']) == false) {
$search_term = $db->real_escape_string(htmlentities(trim($_POST['search_term'])));
$search_term_query = "SELECT * FROM `a` WHERE `b` LIKE '$search_term%'";
if ($result_query = $db->query($search_term_query)) {
while ($row = $result_query->fetch_assoc()) {
echo '<li>',
$row["a"],
' ',
$row["b"],
' ',
'( ',
$row["c"],
' )',
' </li>';
}
}
}
私のjavascriptは1つのキーワードのみを処理しています:
$(document).ready(function() {
$('.searchfield').keyup(function() {
var search_term = $(this).attr('value');
$.post('ajax/search.php', {search_term:search_term}, function(data) {
$('.result').html(data);
$('.result li').click(function() {
var result_value = $(this).text();
$('.searchfield').attr('value', result_value);
$('.result').html('');
});
});
});
});
そのため、現時点ではそれを解決する方法がわかりません。私を助けてくれる人がいれば、本当に感謝しています。ありがとう。