下面的代码在我的本地主机上工作,但是当我在服务器上上传文件时行为非常奇怪
$(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短标记是否可以使用?
转念一想,这可能不是问题,因为变量正在打印-对不起!