2012-07-25 62 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(); ?>');