无法触发预先输入功能

时间:2016-02-28 17:21:20

标签: javascript php typeahead.js

我想按照this添加一个预先输入功能。以下是我编码的方式。当我检查control.log时,我看不到任何返回的内容。看起来类型函数永远不会被调用,因为我测试了数据搜索php,它确实有效。谁能指出我做错了什么?感谢。



<html>

<head>
  <meta chatset="utf-8">
  <title></title>
  <link href="css/bootstrap.css" rel="stylesheet">
</head>

<body>
  <div class="well">
    <input type="text" class="span3" id="typeahead" data-provide="typeahead">
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script src="js/typeahead.bundle.min.js"></script>
  <script>
    $(function() {
      $("#typeahead").typeahead({
        source: function(query, process) {
          $.ajax({
            url: 'source.php',
            type: 'POST',
            data: 'query=' + query,
            dataType: 'JSON',
            async: true,
            success: function(data) {
              control.log(data);
            }
          });
        }
      });
    });
  </script>
</body>

</html>
&#13;
&#13;
&#13;

&#13;
&#13;
<?php 
  if (isset($_POST['query'])) { 
    $db_host="localhost"; 
    $db_username="myuser"; 
    $db_pass="mypassword"; 
    $db_name="mydb"; 
    mysql_connect("$db_host", "$db_username", "$db_pass") or die(mysql_error()); mysql_select_db("$db_name") 
      or die ("Database not found"); 
    $query=$_POST['query']; 
    $sql=mysql_query("SELECT prvname FROM prv WHERE prvname LIKE '%{$query}%'") 
      or die(mysql_error()); 
    $array=array(); 
    while ($row=mysql_fetch_assoc($sql)) { 
      $array[]=$row['prvname']; 
    } 
    echo json_encode($array); 
  } 
?>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

typeahead函数需要两个参数,所以如果你不需要传递任何typeahead选项,你可以传递null作为第一个参数:

$(function() {
  $("#typeahead").typeahead(null, {
    source: function(query, process) {
      $.ajax({
        url: 'source.php',
        type: 'POST',
        data: 'query=' + query,
        dataType: 'JSON',
        async: true,
        success: function(data) {
          console.log(data);
        }
      });
    }
  });
});