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

标签 javascript php jquery ajax json

我无法获取 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 数组上,因为 startDayendDay值将来自客户端 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/

相关文章:

JavaScript "is not a function"错误

javascript - 带函数参数的 Rest 运算符

php - 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是

javascript - 如何在 jQuery 中传递事件和 $ 作为参数(在 wordpress 中启用无冲突模式)

javascript - Chrome : JQuery animate; only appears to work when selected in developer tools

javascript - 添加混合 javascript 函数以使内容淡入列内的另一个内容/使它适用于两个单独的列

javascript - JavaScript中有多人棋盘游戏的框架吗?

php - 通过 jQuery 或 javascript 添加项目以选择 html/php(列表框)

php - 在 php 中使用 pdo 更新不起作用

jquery - 如何在 jQuery 中发出 get 和 post API 请求?