我无法获取 jQuery.ajax
调用以使用我的 PHP 字符串变量 $defaultTicker
。我尝试过编码为 utf8 并 trim 任何类型的“特殊”字符,但没有任何帮助。如果我查看页面源代码,我会看到一个有效的 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?>
,就会成功。然而,当查看源代码时,结果似乎是相同的。
注意:我没有使用json_encode
在 PHP 数组上,因为 startDay
和endDay
值将来自客户端 JavaScript。
编辑:真正的问题实际上是我在 Chrome 中的浏览器设置。它正在缓存我的 JavaScript 并忽略对文件的任何更新,因此我不断进行更改并获得相同的结果。
最佳答案
可能是因为您的服务器没有short_open_tag
配置已启用。
因此,以下行不会被解析为 PHP 代码,而是被视为纯文本。
"ticker": "<?=$defaultTicker?>",
改用这个:
"ticker": "<?php echo $defaultTicker; ?>"
短标签在编码领域被认为是 PITA,因为如果您必须将代码迁移到不支持它的服务器,或者您无法启用它,那么您必须编辑所有代码对于那种环境,您可以使用普通标签。 但是,从 5.4.x 开始,简写标记在默认情况下启用并在任何 PHP 文档中进行解析。但记住不同的环境是有好处的。
关于javascript - 为什么 JSON 不接受我的 PHP 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23210062/