Я использую Twitter Bootstrap Typeahead для поля автозаполнения.
Цель конечного состояния: пользователь сначала вводит данные в поле 1. Когда они вводят данные в поле 2, ajax передает запрос, когда он записывается в файл PHP, который запрашивает базу данных на основе того, что также было введено в поле 1.
Как передать и запрос из поля 2, и содержимое поля 1 в файл PHP и получить к ним доступ.
Вот что я имею до сих пор:
HTML FILE :
<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 FILE:
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 одновременно!
Любая помощь будет отличной
Если бы я понял это правильно, вы хотите проанализировать оба значения полей 1 и 2 на один и тот же вызов AJAX. Так вы это делаете.
<script> $(function() { $("#field2").typeahead({ source: function(query, process) { var textVal=$("#field1").val(); $.ajax({ url: 'field2.php', type: 'POST', data: 'query=' + query + '&field1=' + textVal, dataType: 'JSON', async: true, success: function(data) { process(data); console.log(textVal); } }); } }); }); </script>
Теперь вы просто делаете еще один $ _POST ['field1'] в своем PHP-файле.
var userQuery = $('#ID of query input element').val(); var field1 = $('#ID of input 1 element').val(); $.ajax({ type: "POST", url: '', data: {query: QueryVariable, input1: input1variable}, success: function(data) { // code within this block }, error: function() { alert('System Error! Please try again.'); }, complete: function() { console.log('completed') }
}); // *** END $ .ajax call