スポンサードリンク

前回はプラグインをメニューに表示をさせました。
今回は、プラグインの内容を
メニューを押したら表示させるようにします。
スポンサードリンク
プラグインの内容を表示させる
前回作ったcsv-uploader-plugin.phpに
表示させる内容がありました。
//プラグインの表示 function csv_upload(){ echo "<h2>CSVアップローダー</h2>"; }
ユーザー関数のcsv_uploadが表示をさせてる部分なので
ここを変更します。
・・・ //プラグインの表示 function csv_upload(){ ?> <div class="wrap"> <h2>CSVアップローダー</h2> <form action="" method="post" enctype="multipart/form-data"> <table> <tr> <th>ファイルを選択<br><span class="f10">※CSVファイルのみ</span></th> <td><input name="csv" type="file" size="30"></td> </tr> <tr> <td colspan="2"><input type="submit" value="アップロード"></td> </tr> </table> </form> </div><!-- end .wrap --> <?php } ・・・
上記のように書くと

こんな感じで表示されます。
内容自体はHTMLと同じですね。
CSVファイルをPOSTして表示させる
次は、POSTしてCSVファイルを表示させてみましょう。
先ほどのユーザー関数のcsv_uploadに
POSTを受け取る内容を記述します。
//プラグインの表示 function csv_upload(){ //追記文ここから if(is_uploaded_file($_FILES["csv"]["tmp_name"])){ //csvかチェック if(pathinfo($_FILES["csv"]["name"], PATHINFO_EXTENSION) == "csv"){ $tmp = fopen($_FILES["csv"]["tmp_name"], "r"); //csvファイルを配列に変換 while($csv[] = fgetcsv($tmp, "1024")){} //配列 $csv の文字コードをSJIS-winからUTF-8に変換 mb_convert_variables("UTF-8", "SJIS-win", $csv); //ファイルを閉じる fclose($tmp); } } //追記文ここまで ?> <div class="wrap"> <h2>CSVアップローダー</h2> <form action="" method="post" enctype="multipart/form-data"> <table> <tr> <th>ファイルを選択<br><span class="f10">※CSVファイルのみ</span></th> <td><input name="csv" type="file" size="30"></td> </tr> <tr> <td colspan="2"><input type="submit" value="アップロード"></td> </tr> </table> </form> </div><!-- end .wrap --> <?php //追記文ここから if(isset($csv)): ?> <div class="wrap"> <h3>以下の内容をアップロードしました。</h3> <table class="table"> <?php foreach($csv as $c): ?> <?php if(is_array($c)): ?> <tr class="tr_style"> <?php foreach($c as $td): ?> <td class="center"><?php echo $td; ?></td> <?php endforeach;?> </tr> <?php endif ?> <?php endforeach;?> </table> </div> <?php endif; //追記文ここまで }
追記文もPHPのやり方と同じです。
POSTされた値からCSVファイルかを確認して
CSVファイルを開いて
中の値を配列に入れてからファイルを閉じます。(4~15行目)
次に、配列に値があったら
1行ずつ値を取得して
テーブルで表示させていきます。(34~49行目)
例えば以下のようなCSVファイルをアップロードしてみます。
————————————————————
1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月
January,February,March,April,May,June,July,August,September,October,November,December
睦月,如月,弥生,卯月,皐月,水無月,文月,葉月,長月,神無月,霜月,師走
————————————————————

こんな感じでCSVがアップロードされて
画面に内容が表示されました。
このままだと、表示画面が少しさみしいので
次回はCSSを読み込んで
表示を変えてみます。
スポンサードリンク