0

JavaScriptの部分に次のコードがあります。

var opConfig = new Product.Options(<?php echo $this->getJsonConfig(); ?>);

PHP呼び出しは、簡単にするために文字列を返します。たとえば、文字列がabcdであるとします。したがって、このコードは次のようになります。

var opConfig = new Product.Options(abcd);

さて、数行後、私はこのコードを持っています:

this.opConfig = new Product.Options(opconfig);

opconfig変数の文字列は同じですがabcd、結果が異なり、this.opConfig以前のようには見えません。それで、文字列をパラメータとして使用する方法に違いはありますか?私が欠けているものはありますか?私にとって、それは常に同じ呼び出しである必要があります。

new Product.Options(abcd)

アイデア?

追加: JSコードの完全な呼び出しは次のようになります。

var opConfig = new Product.Options({"16":{"26":{"price":5,"oldPrice":5,"priceValue":"5.0000","type":"fixed","excludeTax":5,"includeTax":5},"28":{"price":8,"oldPrice":8,"priceValue":"8.0000","type":"fixed","excludeTax":8,"includeTax":8},"27":{"price":10,"oldPrice":10,"priceValue":"10.0000","type":"fixed","excludeTax":10,"includeTax":10}},"14":{"price":0,"oldPrice":0,"priceValue":"0.0000","type":"fixed","excludeTax":0,"includeTax":0},"15":{"price":0,"oldPrice":0,"priceValue":"0.0000","type":"fixed","excludeTax":0,"includeTax":0}});

paramはオブジェクトとして呼び出された関数に到達しますが、理由はわかりません。別の言い方をすれば、同じ文字列が文字列として到達しているように見えます。誰か助けてもらえますか?

4

4 に答える 4

2

への変更:

var opConfig = new Product.Options('<?php echo $this->getJsonConfig(); ?>');

opconfigは文字列変数なので、それをパラメーターとして渡すのは問題ありません。

一方、PHP コードは次のようにレンダリングされます。

var opConfig = new Product.Options(abcd);

abcd文字列変数ではありません。したがって、文字列オブジェクトになるように、これをスピーチ マークに入れる必要があります。出力は次のようになります。

var opConfig = new Product.Options('abcd');
于 2012-07-25T14:31:36.883 に答える
0

持っている場合new Product.Options(abcd)abcd、文字列ではなく変数名です。最終的に次のようになるように、引用符を追加する必要がありますnew Product.Options('abcd')

var opConfig = new Product.Options('<?php echo $this->getJsonConfig(); ?>');
// OR
var opConfig = new Product.Options("<?php echo $this->getJsonConfig(); ?>");

どちらの方法でも、PHP 出力が文字列リテラルを「壊す」可能性のある文字をエスケープする必要があります。 .

于 2012-07-25T14:32:26.410 に答える
0

引用符が足りないことがわかります:

var opConfig = new Product.Options('<?php echo $this->getJsonConfig(); ?>');
于 2012-07-25T14:32:46.303 に答える
0

下の行を変更します

var opConfig = new Product.Options(<?php echo $this->getJsonConfig(); ?>);

var opConfig = new Product.Options('<?php echo $this->getJsonConfig(); ?>');
于 2012-07-25T14:32:53.810 に答える