2011-08-08 70 views
0

以下一段代碼在我的本地主機中工作,但是當我在我的服務器上傳文件時表現很奇怪。問題與jquery,失蹤;之前的聲明

$(function(){ 
var myPath=<?= BASE_URL ?>+'myaddress/mystatelist'; 
$('#country').val('US') 
loadMystate('US',myPath); 
}); 

其實我在我的本地像「test.study.com/projectname」,這意味着「<?= BASE_URL ?>」將採取「/projectname」作爲BASE_URL創建虛擬主機。當我在BASE_URL「http://dev.study.com」上下載文件時遇到問題。現在我在螢火蟲中出現錯誤爲「missing ; before statement var myPath=http://dev.study.com/+'myaddress/mystatelist';

我做錯了這段代碼?請幫助我。

+0

在PHP處理它之後,實際生成的JavaScript代碼是什麼樣的? – jfriend00

+0

如果你不明白爲什麼一些JS不工作 - 向我們展示** JavaScript **。不要向我們展示一些在執行時會生成一些JS的PHP。 – Quentin

+0

這將是一個非常糟糕的機制,不會在你的車上工作,因爲當問題真的發生在懸架上時,你認爲差速器有什麼問題。 – mVChr

回答

1

你錯過了基URL的引號,因此它試圖將它解釋爲代碼。嘗試:

var myPath = '<?= BASE_URL ?>myaddress/mystatelist'; 
+0

謝謝非常有幫助。它現在有效... – mymotherland

0

字符串必須用JavaScript引用。

var myPath=http://dev.study.com/ 

哪裏有引號?

1

你的JS代碼如下所示:

var myPath=http://dev.study.com/+'myaddress/mystatelist'; 

你缺少報價約於第一串

var myPath='http://dev.study.com/'+'myaddress/mystatelist'; 

而且,爲了從PHP生成的報價,您的PHP代碼應該如下所示:

var myPath = '<?= BASE_URL ?>' + 'myaddress/mystatelist'; 


或者你可以刪除字符串拼接,並直接使用:

var myPath = '<?= BASE_URL ?>myaddress/mystatelist'; 
0

var myPath='<?= BASE_URL ?>myaddress/mystatelist';

你的PHP代碼被寫入到輸出,但它不是一個字符串中。你的價值會在JS中引發無效的RegEx錯誤。

另外,$('#country').val('US') - 你確定這是做任何事情,它似乎缺少一個;

0

另外,服務器上可能不支持短標籤<?=。在Are PHP short tags acceptable to use?有一個很好的答案。

第二個想法,這可能不是問題,因爲變量正在打印 - 對不起!