2016-02-28 44 views
0

我想通過以下this添加鍵入功能。以下是我編碼的方式。當我檢查control.log時,我沒有看到任何返回。看起來typeahead函數永遠不會被調用,因爲我測試了搜索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>

<?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); 
 
    } 
 
?>

+0

有你的代碼中散佈的空間,就在這裏還是在你的實際代碼中?例如'$ _POST','m ysql_query'等等。JS是否向PHP代碼發出請求? – chris85

+0

散佈的空間就在我發佈的代碼上,因爲我試圖整理它們。我不認爲JS已經被調用了,因爲我在$(「#typeahead」)行後面添加了一個alert。typeahead({'並且它沒有彈出。 –

回答

0

的預輸入功能需要兩個參數,因此,如果你不需要通過任何預輸入選項,您可以傳遞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); 
     } 
     }); 
    } 
    }); 
}); 
+0

Thx。我添加了null作爲第一個參數JS似乎被觸發了,但是現在我在control.log(data)行中得到了「Uncaught ReferenceError:control is not defined」。根據演示,我應該看到從搜索PHP返回的數據。 –

+0

我編輯過源代碼是console.log而不是control.log) –

+0

Chrome開發者顯示2個錯誤。我擴大了它,它顯示(匿名功能)@ jquery.min.js:4。那是什麼問題? –