2016-09-23 27 views
3

我想在輸入文本上使用typeahead,但它不起作用。typeahead bootstrap不能使用來自php的動態數據頁面

我的html:

<link rel="stylesheet" type="text/css" href="<?php echo base_url('asset/css/typeahead.css')?>"> 

<?php foreach ($driver as $d) { ?> 
    <input type="text" class="form-control input-lg typeahead" autocomplete="off" data-provide="typeahead" data-source="<?php echo $d['email']; }; ?>" id="email" name="email"> 

<script src="<?php echo base_url('asset/js/typeahead.bundle.min.js') ?>"></script> 

我的控制器:

$this->db->select("*"); 
$this->db->from('user'); 
$query = $this->db->get(); 
$data['driver'] = $query->result_array(); 

當我在輸入文本開始打字,它說明不了什麼,它應該是從下拉列表中查詢select提供的email名單。沒有錯誤返回。

+0

做你檢查'<鏈路的rel = 「樣式表」 類型= 「文本/ CSS的」 href = 「<?PHP的回聲BASE_URL( '資產/ CSS/typeahead.css')?>」> '這行正確地給css文件。可能是你的css文件沒有加載 –

+0

我已經通過瀏覽器中的「查看頁面源代碼」檢查了它,它工作正常@Anant – may

+0

希望這可以幫助你: - https://www.upwork.com/hiring/development/creating -autocomplete-functionality-with-php-and-mysql/ –

回答

0

代碼有問題。您正在爲每個$driver循環並在數據源中顯示其電子郵件ID,並且輸入標記未關閉。

對於使用下面的代碼
$emails = array_column($driver, 'email');

  • 創建一個將包含所有的電子郵件字符串使用從$driver所有電子郵件的引導typeaded

    1. 獲取列表。所有的郵件應被包裹在雙引號("),並用英文逗號分隔(,
      $csv = "\"" . implode("\",\"", $emails) . "\"";
    2. 現在創建typeahed輸入標籤
      <input type="text" class="form-control input-lg typeahead" autocomplete="off" data-provide="typeahead" data-source='[<?php echo $csv; ?>]' id="email" name="email">
      記住data-source屬性具有單引號開始和結束。
  • 相關問題