jquery的问题,缺失;之前的声明


Issue with jquery , missing ; before statement

下面的代码在我的本地主机上工作,但是当我在服务器上上传文件时行为非常奇怪

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

实际上,我在我的本地主机中创建了vhost,如"test.study.com/projectname",这意味着"<?= BASE_URL ?>"将以"/projectname"作为BASE_URL。当我在BASE_URL"http://dev.study.com"下上传文件时面临问题。现在我在firebug中得到错误为"missing ; before statement var myPath=http://dev.study.com/+'myaddress/mystatelist';"

这段代码我做错了什么?

您在基本URL周围缺少引号,因此它试图将其解释为代码。试一试:

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

你的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';

JavaScript中字符串必须加引号。

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

引号在哪里?

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

您的PHP代码被写入输出,但它不在字符串中。你的值会在JS中抛出一个无效的RegEx错误。

另外,$('#country').val('US') -你确定它正在做任何事情,它似乎缺少一个; .

另外,短标记<?=在您的服务器上可能不受支持。关于这个问题有一个很好的答案:PHP短标记是否可以使用?

转念一想,这可能不是问题,因为变量正在打印-对不起!