我无法通过jQuery.ajax
调用我的PHP字符串变量$defaultTicker
。我尝试过编码到utf8并修剪任何类型的"特殊"人物,但没有任何帮助。如果我查看页面源代码,我会看到一个有效的JSON数组:{ "ticker":"SPY", "startDay":1, "endDay":30}
。
这是我提交数据的jQuery:
$.ajax({
url: "findCorrelated.php",
// WHY DOESN'T <?=$defaultTicker?> work???
data: {
"ticker": "<?=$defaultTicker?>",
"startDay": 1,
"endDay": 30
},
success: function (data) {
$('#testParagraph').show();
$('#testParagraph').html(data);
}
});
有关为何无法使用PHP变量提交的任何想法?如果我硬编码SPY
代替<?defaultTicker?>
,它就会成功。但是,在查看源时,结果看起来是相同的。
注意:我没有在PHP数组上使用json_encode
,因为startDay
和endDay
值将来自客户端JavaScript。
编辑:真正的问题实际上是Chrome中的浏览器设置。它缓存了我的javascript并忽略了对文件的任何更新,因此我不断进行更改并获得相同的结果。
答案 0 :(得分:2)
可能是因为您的服务器未启用short_open_tag
配置。
因此,以下行不会被解析为PHP代码,而是被视为纯文本。
"ticker": "<?=$defaultTicker?>",
请改用:
"ticker": "<?php echo $defaultTicker; ?>"
短代码在编码领域被视为PITA,因为如果您必须将代码迁移到不支持它的服务器,或者您无法启用它,那么您必须编辑当你可以使用普通标签时,所有代码都只针对那个环境。 但是,从5.4.x开始,短手标记由默认启用,并在任何PHP文档中解析。但要记住不同的环境是件好事。
答案 1 :(得分:0)
尝试使用:
data: { "ticker":"<?php echo $defaultTicker; ?>", "startDay":1, "endDay":30},
而不是:
data: { "ticker":"<?=$defaultTicker?>", "startDay":1, "endDay":30},