2012-07-25 63 views
0

我有这样的代码在我的JavaScript部分:代码中的JavaScript和PHP - 有什么区别?

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}}); 

帕拉姆到达被叫功能为目标,不知道为什么。以另一种方式调用它,相同的字符串似乎以字符串的形式达到它。任何人都可以帮忙吗?

+0

不宜字符串在'''或'使用” '? – Leri 2012-07-25 14:32:05

+0

'abcd'不是一个字符串,''abcd“'会是。 – JJJ 2012-07-25 14:32:19

回答

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'); 
+0

我更新了我的问题,可以再看看吗? – user1540714 2012-07-25 14:45:58

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输出转义任何字符可能“破发”的字符串文字,例如,单引号(在第一个)或双引号(在第二个中)或换行符(在任一个中)。

0

我可以看到你错过了引号:

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

更改以下行

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

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