**要求:**按照训练项目、人员所在单位、成绩评定以及训练录入时间作为筛选互动条件;
解决方案:
第一步,mysql语句,输入全部的“优秀”、“良好”、“及格”和“不及格”的json数据;
$projectSelect = $_POST['projectSelect'];
$selectDepart = $_POST['selectDepart'];
$grade = $_POST['grade'];
$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];
//查询语句;
$sql = "select category_id,category_name,achieve_grade,member_depart,achieve_time,COUNT(achieve_accurate) as achieve_accurate from " . $db->table('achieve') . " where 1";
//训练项目查询;
IF ($projectSelect != "") {
$sql .= " AND category_id in ($projectSelect)";
}
//所在单位查询;
IF ($selectDepart != "") {
$sql .= " AND instr (\" . $selectDepart . \",member_depart) > 0";
}
//选择成绩评定查询;
IF ($grade != "") {
$sql .= " AND instr (\" . $grade . \",achieve_grade) > 0";
}
//起始时间;
IF ($start_date != "") {
$sql .= " AND date_format(from_unixtime(achieve_time),'%Y-%m-%d') >= '$start_date'";
}
//结束时间;
IF ($end_date != "") {
$sql .= " AND date_format(from_unixtime(achieve_time),'%Y-%m-%d') <= '$end_date'";
}
$sql .= ' group by achieve_grade';
一定是:group by achieve_grade。
在百度Echarts中,直接使用:
gradeName.push(result.data[i].achieve_grade);
即可自动过来重复数据,形成新的数据,作为legend: {}的data使用。
第二步,互动表格展示;
在读取数据列表$.ajax的返回success:{}中,嵌套同样筛选条件的表格api即可。