확인. 필요한 코드는 다음과 같습니다. 나는 그것을 테스트하고 작동합니다.
설명 : 현재보기의 누벨과 결석 수를 포함하여 테이블에있는 날짜와 cse와 일치하는 모든 항목에 대해 div를 만듭니다. 그런 다음 javascript를 사용하여 선택 항목을 선택하면 날짜와 선택 항목이 모두 선택되었는지 확인합니다. '예'일 경우 선택한 날짜와 cse가 표시된 div를 만듭니다. 대응하는 div가 없다면 (해당 일에 해당 배열에 학생이 없기 때문에) 적절한 메시지가 표시됩니다. 그렇지 않으면 선택한 날짜와 cse에 대한 데이터가 표시됩니다.
댓글의 내용은 댓글에 포함되어 있습니다. 질문이 있거나 다른 것을 원한다면 알려주십시오.
<html>
<?php
$students = array
(
array('CSE-A','PRESENT',"2-10-2017"),
array('CSE-A','PRESENT',"2-10-2017"),
array('CSE-B','ABSENT',"3-10-2017"),
array('CSE-B','ABSENT',"3-10-2017"),
array('CSE-A','ABSENT',"3-10-2017"),
array('CSE-B','PRESENT',"4-10-2017"),
array('CSE-B','ABSENT',"4-10-2017"),
array('CSE-A','ABSENT',"5-10-2017"),
array('CSE-C','ABSENT',"5-10-2017"),
array('CSE-C','PRESENT',"5-10-2017")
);
$outputs = [];
foreach($students as $array) {
$cse = $array[0];
$present = $array[1];
$date = $array[2];
$entry = $cse.", ".$date;
if (!isset($outputs[$entry])) {
$outputs[$entry] = [
'present' => 0,
'absent' => 0,
];
}
//check value
if ($present === 'PRESENT') {
$outputs[$entry]['present']++;
} else if ($present === 'ABSENT') {
$outputs[$entry]['absent']++;
}
}
// Save all availbale cse, for the dropdown choices
$all_cse = array();
foreach($students as $array) {
$cse = $array[0];
array_push($all_cse,$cse);
}
$all_cse = array_combine($all_cse, $all_cse);
// Save all availbale dates, for the dropdown choices
$all_dates = array();
foreach($students as $array) {
$date = $array[2];
array_push($all_dates,$date);
}
$all_dates = array_combine($all_dates, $all_dates);
?>
<body>
<select id="cse" onchange="myFunction()">
<option disabled selected value> -- select an option -- </option>
<?php
foreach($all_cse as $cse) {
echo "<option value='".$cse."'>".$cse."</option>";
}
?>
</select>
<select id="dates" onchange="myFunction()">
<option disabled selected value> -- select an option -- </option>
<?php
foreach($all_dates as $date) {
echo "<option value='".$date."'>".$date."</option>";
}
?>
</select>
<br><br>
<div id="data">
</div>
<?php
foreach($outputs as $key => $value) {
// Create a div for every match of cse and date that exists.
echo "<div id='".$key."' style='display:none;'>";
"<br>";
echo "Present Totals: ".$value['present'].
"<br>";
echo "absent Totals: ".$value['absent'].
"<br>";
echo "</div>";
}
?>
</body>
</html>
<script type="text/javascript">
var lastDiv;
function myFunction() {
var date = document.getElementById("dates").value;
var cse = document.getElementById("cse").value;
if (cse!="" && date!=""){
// Make invisible the div for the previous choice
if (lastDiv!=null){
lastDiv.style.display = "none";
}
lastDiv = document.getElementById(cse + ", " + date);
// Make visible the div for the current choice
if (lastDiv!=null){
document.getElementById("data").innerHTML = cse +"<br>Date: " + date;
lastDiv.style.display = "block";
} else {
document.getElementById("data").innerHTML = "No matches found for this cse in this date.";
}
}
}
</script>
당신은 데이터가 드롭 다운 및 날짜 선택기에서 옵션을 선택하거나 버튼을 갖고 싶어하고, 사용자가 해당 버튼 페이지가 새로 고쳐 원하는 데이터 (학생들을 클릭하면 후 바로 인쇄 할 하시겠습니까 presntees 및 결석) 인쇄 할 수 있습니까? – Thanasis
날짜 및 섹션이 날짜 피커 및 기간 제한에서 선택 될 때 데이터를 원합니다. – user7399549