【问题标题】:Json Call can't interpret PHP variable in Jquery Mobile AppJson Call 无法解释 Jquery Mobile App 中的 PHP 变量
【发布时间】:2016-10-18 18:30:48
【问题描述】:

我想从数据库中加载事件日历,我在网上得到了这段代码并且运行良好。

我的javascript:

$('#mycalendar').monthly({
    mode: 'event',
    jsonUrl: 'http://localhost/acadasuite_mobile/www/calendar.php',
    dataType: 'json'
});

我的 PHP

   $startdate = "2016-10-6";
   echo '{
    "monthly": [
       {
         "id": 2,
         "name": "This is a JSON event",
         "startdate": "2016-10-6",
         "enddate": "",
         "starttime": "12:00",
         "endtime": "2:00",
         "color": "#EF44EF",
         "url": ""
      }
    ]
  }';

以上工作良好。但是如果我将“2016-10-6”更改为“.$startdate.”,它将无法再次工作

即。 "startdate": '.$startdate.',

请问,可能是什么问题;是 javascript 不解释变量 $startdate 还是 PHP?

【问题讨论】:

  • 阅读json_encode() 永远不要尝试自己构建 JSONString
  • 您应该将该对象创建为关联数组,然后使用json_encode() 格式化响应。

标签: javascript php jquery jquery-mobile


【解决方案1】:

PHP 不会解释用单引号表示的字符串中的变量。切换到外部的双引号并在内部转义双引号。

或者,使用字符串连接:

$startdate = "2016-10-6";
echo '{
"monthly": [
   {
     "id": 2,
     "name": "This is a JSON event",
     "startdate": "'.$stardate.'",
     "enddate": "",
     "starttime": "12:00",
     "endtime": "2:00",
     "color": "#EF44EF",
     "url": ""
  }
]
}';

【讨论】:

  • 但是阅读 json_encode() 永远不要尝试自己构建 JSONString
【解决方案2】:

你忘记了引号:

"startdate": "2016-10-6", etc...

变成

"startdate": ' . $stardate . ', etc..

生成

 "startdate":2016-10-6, etc...

这是不是有效的 JSON。 Json 只能表示 VALUES,不能表示表达式。即使支持表达式,这也是一个数学减法,您会将值 2000 放入 startdate

你需要引号:

     "startdate": "' . $startdate . '",
                  ^------------------^

显示 (j)son/(p)hp 的轮廓在哪里:

     "startdate": "' . $startdate . '",
     jjjjjjjjjjjjjjppppppppppppppppppjj

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多