我正在尝试使用 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);
}
});
我遇到的问题是我尝试做的地方
model_source.push("<?php if($model['Variety']['manufacturer_id'] == "+manufacturer+"){echo $model['Variety']['model'];}else{ continue; } ?>");
如果我将制造商变量硬编码为一行 PHP,那么它就可以工作(没有 else 语句,这也给我带来了问题,我在控制台上收到了 ILEGAL 错误)
知道为什么当我将 php 字符串与 javascript 变量连接起来时它不起作用吗?!
http://jsfiddle.net/mmoscosa/Y6hEA/
谢谢!