オートコンプリートフィールドにTwitterBootstrapTypeaheadを使用しています。
終了状態の目標:ユーザーは最初にフィールド1に詳細を入力します。フィールド2に詳細を入力すると、ajaxは、フィールド1にも入力された内容に基づいてデータベースにクエリを実行するPHPファイルに書き込まれるクエリを渡します。
フィールド2からのクエリとフィールド1の内容の両方をPHPファイルに渡して、それらにアクセスするにはどうすればよいですか。
これが私がこれまでに持っているものです:
HTMLファイル:
<div class="field1">
<input type="text" id="field1" data-provide="typeahead" name="field1">
</div>
<div class="field2">
<input type="text" id="field2" data-provide="typeahead">
</div>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/bootstrap.js"></script>
<script>
$(function() {
$("#field2").typeahead({
source: function(query, process) {
var textVal=$("#field1").val();
$.ajax({
url: 'field2.php',
type: 'POST',
data: 'query=' + query,
dataType: 'JSON',
async: true,
success: function(data) {
process(data);
console.log(textVal);
}
});
}
});
});
</script>
PHPファイル:
if (isset($_POST['query'])) {
$db_server = mysql_connect("localhost", "root", "root");
mysql_select_db("db_test");
$query = $_POST['query'];
$other = '**This needs to be field 1**';
$sql = mysql_query("SELECT * FROM table WHERE row1 LIKE '%{$query}%' AND row2 = '$other'");
$array = array();
while ($row = mysql_fetch_assoc($sql)) {
$array[] = $row['row1'];
}
echo json_encode($array);}
現時点では、クエリ部分は完全に機能し、結果が返されます(コンソールには、「Field1」からの値も表示されます。同時にその値をphpファイルに取得する必要があります。
どんな助けでも素晴らしいでしょう