【发布时间】:2012-02-03 04:07:09
【问题描述】:
我正在使用 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);
}
【问题讨论】:
-
一些示例代码会很棒,如果您通过 url 参数发送值,您是否尝试过对值进行 urlencoding?
-
也许我是盲人,但我在您发布的 Javascript 函数中看不到任何日期/时间变量...我在您对 updateChart() 的调用中看到 4 个参数,但该方法仅收到 3 个参数,并且不引用任何日期时间值。你能仔细检查你的例子吗?
-
是的,对不起,这就是为什么我没有首先发布我的代码 - 因为它是一团糟!我一直在取出东西并放入东西,即使没有该变量,图表也应该加载,因为目前我没有在 javascript 的另一端调用它。如果我将“.$thetime.”变量更改为其他任何内容,那么它会让 javascript 加载,只有当它是时间戳时才会加载图表。
标签: php javascript mysql string timestamp