2013-03-11 47 views
2

我正在使用Twitter Bootstrap Typeahead作为自动填充字段。Typeahead输入字段和使用AJAX传递给PHP的查询

末状态的目标:用户首先进入细节到现场1.当他们进入现场2细节,AJAX经过查询,因为它被写入该查询基于什么也进入到一个数据库中的PHP文件字段1.

如何将来自字段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'的值,只需要获取该值ue同时进入php文件!

如果我理解这一点正确的,要现场1和2的两个值解析到同一个AJAX调用任何帮助将是巨大的

回答

7

。这是你如何做到的。

<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> 

现在您只需在PHP文件中创建另一个$ _POST ['field1']。

+0

谢谢HEAPS!这已经整理出来,现在所有的作品,谢谢 – william 2013-03-11 04:11:52

+0

不客气:) – 2013-03-11 04:12:55

+0

@HassaninAhmed我得到一个错误'未捕获的类型错误:无法读取属性'toLowerCase'未定义' – Rafee 2015-01-28 20:37:05

0
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致电

相关问题