typeahead bootstrap不使用来自php页面的动态数据

时间:2016-09-23 06:38:53

标签: php twitter-bootstrap typeahead

我想在输入文字上使用typeahead,但它不起作用。

我的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();

当我开始输入输入文本时,它没有显示任何内容,应该下拉email查询提供的select列表。没有错误返回。

1 个答案:

答案 0 :(得分:0)

您的代码存在问题。您正在循环每个$driver并在数据源中显示其电子邮件ID,并且输入标记未关闭。

使用bootstrap typeaded

  1. 使用以下代码<{1}}
  2. 获取$driver所有电子邮件的列表
  3. 创建一个包含所有电子邮件的字符串。所有电子邮件都应包含在双引号($emails = array_column($driver, 'email');)中,并以逗号分隔("
    ,
  4. 现在创建键入的输入标记
    $csv = "\"" . implode("\",\"", $emails) . "\"";
    请记住,<input type="text" class="form-control input-lg typeahead" autocomplete="off" data-provide="typeahead" data-source='[<?php echo $csv; ?>]' id="email" name="email">属性的单引号为start和end。