ブートストラップ タイプヘッド プラグインを使用しようとしています。
アイデアは次のとおりです。
- メーカーオプションあります
- モデルのオプションがあります
- メーカー オプションを選択すると、モデル オプションが有効になります。
- モデル オプションは、メーカーによってフィルター処理されます。
CakePHP コントローラーは、製造元とモデルの両方の「findall」配列を送信しています (命名規則でモデルではなくバラエティと呼んでいます)
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 の 1 行にハードコーディングすると、動作します (else ステートメントがないと、コンソールで ILEGAL エラーが発生するという問題も発生します)。
PHP文字列をjavascript変数と連結すると、機能しない理由は何ですか?!
http://jsfiddle.net/mmoscosa/Y6hEA/
ありがとうございました!