<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.01 traditional//en"> <html> <head> <META charset="utf-8"> </head> <body> <?php $str_array = array(); $handle = @fopen("../data/utf8/simple_sample.csv","r"); // タイトル行が1行あることを想定 if($handle) { echo "<table border=2>"; while(!feof($handle)) { $buffer = trim(fgets($handle)); // trimは前後の空白や改行コードをとる関数 if($buffer =="") continue; //空行なら下を実行せず次の行の処理へ $data_num++; // データ数(行数)のカウント $str_array = explode(",",$buffer); // 項目の記憶 (最初の行のみ) if(!isset($col_item)) { for($i=0; $i<count($str_array); $i++) { $col_item[] = $str_array[$i]; //測定量の項目 } } // 項目記憶ここまで echo "<tr><td>". $str_array[0]. "</td>"; for($i=1; $i<count($str_array); $i++) { if($_POST["select_data"]=="" || in_array("all", $_POST["select_data"]) || in_array($i,$_POST["select_data"])) { echo "<td>" . $str_array[$i] ."</td>"; } } echo "</tr>"; } echo "</table>"; } ?> <!-- formの作成 --> <form method="POST" target="_top"> <p>測定項目の絞り込み</p> <?php //POSTされていた項目をcheckedにする $selectOpt = isset($_POST['select_data']) && in_array("all",$_POST['select_data'])?" checked ": ""; echo '<input type="checkbox" name="select_data[]"' . $selectOpt . ' value="all">すべて'; for($i=1; $i<count($col_item);$i++) { $selectOpt = isset($_POST['select_data']) && in_array($i, $_POST['select_data'])?" checked ": ""; echo '<input type="checkbox" name="select_data[]" value="' . $i . '"' . $selectOpt . '>' . $col_item[$i]; } ?> <input type="submit" value="送信"> </form> </body> </html>
上の解答例を読み,プログラムに説明を加えなさい.