我的SQL表中有一个fuvar_status字段。现在,全卡伦多细胞具有静态颜色。
我想要的是:如果fuvar_status为0,背景为#ff0000,或者fuvar_status为1,则BG将是另一种颜色。
如何在javascript文件中写下此?
我的PHP,从SQL获取记录:
<?php
include_once("connect.php");
$sql =
"
SELECT
fuvar.fuvar_id,
fuvar.fuvar_date,
fuvar.fuvar_status,
fuvar.fuvar_kerulet,
gyarto.gyarto_nev,
Varosok.VarosNev
FROM fuvar
LEFT JOIN gyarto ON fuvar.fuvar_honnan = gyarto.gyarto_id
LEFT JOIN Varosok ON fuvar.fuvar_hova = Varosok.VarosID
LIMIT 50
";
// WHERE status != Lezárt fuvar
$get = mysqli_query($kapcs, $sql) or die("SQL ERROR 1 - " . mysqli_error($kapcs));
if(mysqli_num_rows($get) > 0 )
{
$VarosNev = array();
$gyarto_nev = array();
$fuvar_date = array();
$fuvar_id = array();
while( $e = mysqli_fetch_array($get))
{
if($e['fuvar_kerulet'] == "0" ) { $VarosNev[] = $e['VarosNev']; }
else { $VarosNev[] = $e['VarosNev'] .' '. $e['fuvar_kerulet']; }
$gyarto_nev[] = $e['gyarto_nev'];
$fuvar_date[] = $e['fuvar_date'];
$fuvar_id[] = $e['fuvar_id'];
}
$res = array
(
'VarosNev' => $VarosNev,
'gyarto_nev' => $gyarto_nev,
'fuvar_date' => $fuvar_date,
'fuvar_id' => $fuvar_id,
);
echo json_encode($res);
}
?>
javaScript,生成事件:
for (i = 0; i < hossz; i++)
{
if (eventArray.fuvar_id[i] != '')
{
valami.push({
title: eventArray.gyarto_nev[i] +'n'+eventArray.VarosNev[i],
backgroundColor: '#03674e',
start: eventArray.fuvar_date[i],
url: '/fuvar-szerkesztes/' + eventArray.fuvar_id[i]
});
}
else
{
valami.push({
title: eventArray.gyarto_nev[i] +'n'+eventArray.VarosNev[i],
backgroundColor: '#03674e',
start: eventArray.fuvar_date[i],
});
}
}
似乎没有特定的理由在PHP中进行一半的处理,而在JavaScript中进行了一半。您可以使PHP与FullCalendar兼容。您还使用PHP中的冗余平行数组的奇异排列,然后依靠索引值以匹配值。也许您不知道PHP对关联阵列的支持?您可以使用一个数组直接创建实际事件:
$get = mysqli_query($kapcs, $sql) or die("SQL ERROR 1 - " . mysqli_error($kapcs));
if(mysqli_num_rows($get) > 0 )
{
$events = array();
while( $e = mysqli_fetch_array($get))
{
$VarosNev = ($e['fuvar_kerulet'] == "0" ? $e['VarosNev'] : $e['fuvar_kerulet']);
$evt = array(
"title" => $e['gyarto_nev']."n".$VarosNev,
"backgroundColor" => ($e["fuvar_status"] == 0 ? "#ff0000" : "#03674e"),
"start": $e["fuvar_date"]
);
if ($e['fuvar_id'] != "") { $evt["url"] = "/fuvar-szerkesztes/".$e["fuvar_id"]; }
$events[] = $evt;
}
echo json_encode($events);
}
那么,您根本不需要JavaScript中的for
循环 - 您可以直接从服务器将JSON发送到FullCalendar。
n.b。显然,没有您的数据,我无法完全测试此问题,因此对任何小错误表示歉意 - 如果您无法修复它们,请指出它们,如有必要,我将修改答案。