**要求:**按照训练项目、人员所在单位、成绩评定以及训练录入时间作为筛选互动条件;
解决方案:
第一步,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即可。