mySQL TIMEDIFF 查询 JS 变量 - 由于冒号而出错
mySQL TIMEDIFF Query to JS var - Error because of colons
如何将使用 TIMEDIFF 的 MySQL 查询的结果传递给同一个 PHP 文件中的 Javascript 变量?我想将结果用作文本字符串标签。由于传递数据中的冒号,我收到浏览器错误。
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 ?>;
这导致浏览器控制台错误:
"Uncaught SyntaxError: Unexpected token :"
显示冒号的控制台错误输出示例:
"var rowage = 00:00:43;"
所有其他 MySQL 操作和变量通过正常。
Json-如果要在Javascript.
中使用它,则在打印时对PHP变量进行编码
<?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 ?>";
在您的 JS 代码中,尝试用双引号将 php 代码包裹起来,像这样
var rowage="<?php cho $rowtimediff; ?>";
如何将使用 TIMEDIFF 的 MySQL 查询的结果传递给同一个 PHP 文件中的 Javascript 变量?我想将结果用作文本字符串标签。由于传递数据中的冒号,我收到浏览器错误。
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 ?>;
这导致浏览器控制台错误:
"Uncaught SyntaxError: Unexpected token :"
显示冒号的控制台错误输出示例: "var rowage = 00:00:43;"
所有其他 MySQL 操作和变量通过正常。
Json-如果要在Javascript.
中使用它,则在打印时对PHP变量进行编码<?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 ?>";
在您的 JS 代码中,尝试用双引号将 php 代码包裹起来,像这样
var rowage="<?php cho $rowtimediff; ?>";