我正在尝试查询SQL以获取用于typeahead的值数组,而我显然错过了数组的基本原理,因为它并没有让我接近我期望的结果
我想收集"姓名" SQL中的列仅用于不同的数据
这是我的MySQL查询
$data['typeahead'] = $this->db->query('SELECT DISTINCT Name from table')->result_array();
以下是var_dump
的输出结果array(287) {
[0]=> array(1) { ["Name"]=> string(16) "'67 Shelby GT500" }
[1]=> array(1) { ["Name"]=> string(8) "Tooligan" }
[2]=> array(1) { ["Name"]=> string(24) "'67 Pontiac Firebird 400" }
[3]=> array(1) { ["Name"]=> string(17) "Volkswagen Beetle" }
}
我唯一想做的就是使用列中的数据构建一个数组。我正在使用CodeIgniter进行FrameWork,并将使用Bootstrap的JS来处理类型,但我仍然坚持使用数据阵列部分。
我将非常感谢任何帮助,我发现了很多关于如何使用非MySQL数组作为预先输入的教程,但是没有使用MySQL。
^^解决了
现在发行:
Typeahead不会从数组
中提取数据控制器代码:
$name_array = $this->db->query('SELECT DISTINCT Name from table')->result_array();
$typeahead_string = '';
foreach ($name_array as $name)
{
$formatted_name = '"' . $name['Name'] . '", ';
$typeahead_string .= $formatted_name;
}
$option_list = "[" . rtrim($typeahead_string, ", ") . "]";
$data['typeahead'] = $option_list;
查看代码:
<input type="text" class="span3 search-query" placeholder="Search" id="typeahead" data-provide="typeahead" data-source="<?php echo $typeahead; ?>"><button type="submit" class="btn"><i class="icon-search"></i></button>
答案 0 :(得分:2)
您可以遍历查询当前生成的结果,并将Name
元素添加到新数组中,如下所示:
$name_array = $this->db->query('SELECT DISTINCT Name from HWC')->result_array();
$typeahead_array = array();
foreach ($name_array as $name)
{
$typeahead_array[] = $name['Name'];
}
$data['typeahead'] = $typeahead_array;
编辑:
要在Bootstrap中使用预先输入功能,数据源可以是字符串列表,例如:"Orange", "Apple", "Banana"
您可以为$data['typeahead']
变量分配一个字符串作为选项列表,将其传递给视图并将其回显到相关属性。
<强>控制器强>
下面的循环将创建一个字符串变量,该变量将包含typeahead的所有选项。它会在每个元素周围添加引号,并在末尾添加逗号 - 因此Apple
将变为"Apple",
。然后它会将每个元素附加到字符串。
$name_array = $this->db->query('SELECT DISTINCT Name from HWC')->result_array();
$typeahead_string = '';
foreach ($name_array as $name)
{
$formatted_name = '"' . $name['Name'] . '", ';
$typeahead_string .= $formatted_name;
}
$option_list = rtrim($typeahead_string, ","); //Strips the last comma and any whitespace from the end string
$data['typeahead'] = $option_list;
查看强>
您在视图中的输入应该与此类似,重要的部分是回显选项列表:data-source="[<?php echo $typeahead; ?>]"
<input type="text" data-provide="typeahead" data-items="4" data-source="[<?php echo $typeahead; ?>]">
希望这有帮助!
答案 1 :(得分:0)
仍然不适合我。当我检查元素数据时,这个“uncategories”,“php”。什么意味着第一个总是夸张。
找到了使用此$formatted_name = '"' . $name['Name'] . '", ';
的方法,只需更改为$formatted_name = '"' . $name['Name'] . '", ';