0

私はJSコードを持っています。そして、これにはJs varとphpコードがあります。私のコードは次のようなものです:

<script  type="text/javascript">
var variablejs = 'toto';
var OptionsModel = '<?php $modeles = Mage::getModel('modeles/modele')->getCollection()->addfilter(marque, '+ variablejs + ');?><option><?php echo $this->__('Choose an Option...') ?></option><?php foreach ($modeles as $modele) : ?><option  val=\'<?php echo $modele->getMarque(); ?>\'><?php echo $modele->getModele(); ?></option><?php endforeach; ?>';
jQuery('#model').empty().append(OptionsModel);
</script>

残念ながら、variablejs は「toto」値ではなく、テキストのように呼び出されます。

4

4 に答える 4

2

その値にする必要がありechoます。今あなたのコードは

<?php

1

これは基本的にノーオペレーションです。それは何もしません。

試す

var OptionsModel = <?php echo json_encode(Mage::GetModel(etc....)) ?>;

代わりは。json_encode() の使用法に注意してください。これは、Magento から取得したものを構文的に有効な Javascript に変換するための安全対策です。これは基本的に、SQL インジェクション攻撃に相当する JS を防ぎます。

于 2013-09-12T14:45:47.553 に答える
0

これは役立つかもしれません。

var OptionsModel = "@<?php $modeles = Mage::getModel('modeles/modele')->getCollection()->addfilter(marque, ";
    OptionsModel += variablejs;
    OptionsModel += "@);?><option><?php echo $this->__('Choose an Option...') ?></option><?php foreach ($modeles as $modele) : ?><option  val=\'<?php echo $modele->getMarque(); ?>\'><?php echo $modele->getModele(); ?></option><?php endforeach; ?>";    
于 2013-09-12T15:03:41.567 に答える