首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL TIMEDIFF查询JS变量-由于冒号导致的错误

问mySQL TIMEDIFF查询JS变量-由于冒号导致的错误
EN

Stack Overflow用户
提问于 2019-03-02 19:04:33
回答 2查看 42关注 0票数 0

如何使用TIMEDIFF将MySQL查询的结果传递给同一PHP文件中的Javascript var?我想将结果用作文本字符串标签。我得到一个浏览器错误,因为在传递的数据中有冒号。

MySQL:

代码语言:javascript
复制
$mytimediff = 'TIMEDIFF(NOW(), DBTimeStamp) as myTimeDiff';        
$querylast = "SELECT *, $mytimediff FROM user_log ORDER BY LogID DESC LIMIT 1";
$resultlast = mysql_query($querylast);
$rowtimediff = $rowlast['myTimeDiff'];

JS:

代码语言:javascript
复制
var rowage = <?php echo $rowtimediff ?>;

这会导致浏览器控制台错误:

“未捕获SyntaxError:意外的令牌:”

显示冒号的控制台错误输出示例:"var rowage = 00:00:43;“

所有其他MySQL操作和变量都通过ok。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-02 19:49:28

如果要在Javascript中使用PHP变量,请在打印时对其进行Json编码。

代码语言:javascript
复制
<?php
    $rowtimediff = ['foo' => 1, 'bar' => 2, 'baz' => 3];
?>
<script>
    var rowage = <?= json_encode($rowtimediff) ?>;
    console.log(rowage);
</script>

因此,您将获得有效的Javascript代码:

代码语言:javascript
复制
<script>
    var rowage = {"foo":1,"bar":2,"baz":3};
    console.log(rowage);
</script>

此外,在处理字符串时,可以简单地将PHP注入放在引号中(数字不需要引号),如下所示:

代码语言:javascript
复制
var rowage = "<?= $rowtimediff ?>";
票数 1
EN

Stack Overflow用户

发布于 2019-03-02 19:49:36

在您的JS代码中,尝试使用双引号将php代码包装起来,如下所示

代码语言:javascript
复制
var rowage="<?php cho $rowtimediff; ?>";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54957798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档