我正在尝试使用twitter bootstrap从我的数据库中获取制造商.
因为twitter bootstrap typeahead不支持ajax调用我使用这个fork:
https://gist.github.com/1866577
在该页面中,有一条评论提到了如何做我想做的事情.问题是当我运行我的代码时,我继续得到:
未捕获的TypeError:无法调用未定义的方法'toLowerCase'
我谷歌搜索并试图改变我的jquery文件使用缩小和非缩小以及谷歌代码上托管的文件,我一直得到相同的错误.
我的代码目前如下:
$('#manufacturer').typeahead({
source: function(typeahead, query){
$.ajax({
url: window.location.origin+"/bows/get_manufacturers.json",
type: "POST",
data: "",
dataType: "JSON",
async: false,
success: function(results){
var manufacturers = new Array;
$.map(results.data.manufacturers, function(data, item){
var group;
group = {
manufacturer_id: data.Manufacturer.id,
manufacturer: data.Manufacturer.manufacturer
};
manufacturers.push(group);
});
typeahead.process(manufacturers);
}
});
},
property: 'name',
items:11,
onselect: function (obj) {
}
});
Run Code Online (Sandbox Code Playgroud)
在url字段我添加了
window.location.origin
避免任何已经在另一个问题上讨论的问题
在我使用之前$.each(),然后决定$.map()在类似的问题中使用推荐的Tomislav Markovski
任何人都知道我为什么一直遇到这个问题?!
谢谢
我正在尝试使用bootstrap typehead插件.
这个想法是:
CakePHP控制器发送给我一个制造商和模型的'findall'数组(我称之为Variety而不是Model,用于命名约定)
model_source = [];
$('#manufacturer').typeahead({
source: [
<?php
foreach($manufacturers as $manufacturer):
if($manufacturer['Manufacturer']['bow'] == true):
?>
"<?php echo $manufacturer['Manufacturer']['manufacturer']; ?>",
<?php
endif;
endforeach;
?>
]
});
$('#manufacturer').live("change", function(){
if($(this).val()){
$('#model').attr('disabled', false);
manufacturer = $(this).val();
<?php
foreach($varieties as $model):
if($model['Variety']['bow'] == true):
?>
model_source.push("<?php if($model['Variety']['manufacturer_id'] == "+manufacturer+"){echo $model['Variety']['model'];}else{ continue; } ?>");
<?php
endif;
endforeach;
?>
}else{
$('#model').attr('disabled', true);
}
});
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我尝试做的事情
model_source.push("<?php if($model['Variety']['manufacturer_id'] == "+manufacturer+"){echo $model['Variety']['model'];}else{ continue; } ?>");
Run Code Online (Sandbox Code Playgroud)
如果我将制造商变量硬编码为PHP的一行,那么它可以工作(没有else语句,这也给我带来问题,我在控制台上出现了ILEGAL错误)
任何想法,为什么当我连接php字符串与javascript变量,然后它不起作用?!
http://jsfiddle.net/mmoscosa/Y6hEA/
谢谢!