【问题标题】:mySQL TIMEDIFF Query to JS var - Error because of colonsmySQL TIMEDIFF 查询到 JS var - 由于冒号而出错
【发布时间】:2019-07-24 06:19:38
【问题描述】:

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

MySQL:

$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:

var rowage = <?php echo $rowtimediff ?>;

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

“未捕获的语法错误:意外的令牌:”

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

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

【问题讨论】:

  • 您需要将$rowtimediff 括在&lt;?php echo $rowtimediff ?&gt; 内的引号中,即&lt;?php echo '$rowtimediff' ?&gt;

标签: javascript php mysql var


【解决方案1】:

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

<?php
    $rowtimediff = ['foo' => 1, 'bar' => 2, 'baz' => 3];
?>
<script>
    var rowage = <?= json_encode($rowtimediff) ?>;
    console.log(rowage);
</script>

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

<script>
    var rowage = {"foo":1,"bar":2,"baz":3};
    console.log(rowage);
</script>

此外,在处理字符串时,您可以像这样简单地将 PHP 注入包含在引号中(数字不需要引号):

var rowage = "<?= $rowtimediff ?>";

【讨论】:

    【解决方案2】:

    在你的 JS 代码中尝试用这样的双引号来包装 php 代码

    var rowage="<?php cho $rowtimediff; ?>";
    

    【讨论】:

      猜你喜欢
      • 2016-01-26
      • 2021-08-17
      • 1970-01-01
      • 2017-04-23
      • 2014-12-30
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多