繁体   English   中英

为什么JSON不接受我的PHP变量?

[英]Why won't JSON accept my PHP variable?

我无法通过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 ,因为startDayendDay值将来自客户端JavaScript。

编辑:真正的问题实际上是Chrome中的浏览器设置。 它缓存了我的javascript并忽略了对文件的任何更新,因此我不断进行更改并获得相同的结果。

这可能是因为您的服务器没有启用short_open_tag配置。

因此,以下行不会被解析为PHP代码,而是被视为纯文本。

"ticker": "<?=$defaultTicker?>",

请改用:

"ticker": "<?php echo $defaultTicker; ?>"

短标记在编码领域被认为是PITA,因为如果您必须将代码迁移到不支持它的服务器,或者您无法启用它,那么您必须为该环境编辑所有代码什么时候你可以用普通的标签。 但是 ,从5.4.x开始, 默认情况下启用短手标记并在任何PHP文档中进行解析。 但要记住不同的环境是件好事。

尝试使用:

data: { "ticker":"<?php echo $defaultTicker; ?>", "startDay":1, "endDay":30},

代替:

data: { "ticker":"<?=$defaultTicker?>", "startDay":1, "endDay":30},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM