
前回はプラグインをメニューに表示をさせました。
今回は、プラグインの内容を
メニューを押したら表示させるようにします。
プラグインの内容を表示させる
前回作った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を読み込んで
表示を変えてみます。


