我想在输入文本上使用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
列表的下拉列表。无错误返回。 最佳答案
你的代码有问题。您正在为每个$driver
循环,并在数据源中显示其电子邮件ID,而输入标记没有关闭。
用于使用引导typeaded
使用以下代码从$driver
获取所有电子邮件的列表
创建一个包含所有电子邮件的字符串。所有电子邮件都应该用双引号($emails = array_column($driver, 'email');
)包装,并用逗号("
)分隔。,
现在创建typeahed输入标签$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">
属性有一个引号作为开始和结束。
关于php - typeahead bootstrap 无法使用php页面中的动态数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39654155/