gpt4 book ai didi

php - 无法通过 JavaScript 发送数据库时间戳,但可以发送其他值

转载 作者:行者123 更新时间:2023-11-29 00:50:33 26 4
gpt4 key购买 nike

我正在使用 PHP5、MySQL、JavaScript 和 Fusion Charts。

我从数据库返回以下时间值:2011-12-19 12:00:00

从数据库中获取它后,我尝试通过 JavaScript strURL 将其传递到另一个页面,在该页面上我可以使用该值进行进一步的数据库调用。我遇到的问题是,每当我通过日期/时间发送它时,JavaScript 都会失败。我可以通过任何其他值类型发送并且它有效所以问题似乎与时间戳有关。我试过在它被传递之前将它转换为字符串(只是为了确保它不是一个字符串)但这是行不通的。我猜这与值中的字符有关。知道如何解决这个问题吗?

在 PHP 中调用数据库,然后将字段发送到 JavaScript:

$strQuery = "SELECT unit, watts, time, device, siteid FROM inverter WHERE time = '2011-12-19 12:00:00' AND siteid = '842'";
$result2 = mysql_query($strQuery) or die(mysql_error());

if ($result2) {
while($ors2 = mysql_fetch_array($result2)) {
$thetime = (string)$ors2['time'];
$strXML .= "<set color='58ACFA' label='" . $ors2['device'] . "/" . $ors2['unit'] . "' value='" . $ors2['watts'] . "' link='javaScript:updateChart(" . $ors2['unit'] . " , " . $ors2['device'] . " , " . $ors2['siteid'] . " , " . $thetime . ")'/>";
}
}

然后是 JavaScript 函数:

function updateChart(first, second, third){
//DataURL for the chart
var strURL = "FactoryData.php?factoryId=" + first + "&device=" + second + "&siteid=" + third;
FusionCharts("FactoryDetailed").setXMLUrl(strURL);
}

最佳答案

link='javaScript:updateChart(" . $ors2['unit'] . " , " . $ors2['device'] . " , " . $ors2['siteid'] . " , " . $thetime . ")'

这段 JavaScript 变成了这样的东西

updateChart(341, 454, 842, 2011-12-19 12:00:00);

前三个参数是有效数字(我假设 ID 是整数),但第四个参数会导致语法错误。您需要做的是将其用引号引起来,使其成为一个字符串:

link='javaScript:updateChart(... " , \"" . $thetime . "\")'
^^ ^^

现在 JavaScript 应该是这样的:

updateChart(341, 454, 842, "2011-12-19 12:00:00");

关于php - 无法通过 JavaScript 发送数据库时间戳,但可以发送其他值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8740710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com