menu


2017年4月29日土曜日

作者データ修正ページ作成

いたって簡単に作ります。
前回作成したページのノウハウを集めて作者データ一覧を作り修正する作者を選択し、前回作成したページを呼びます。あのページの再読み込み処理は、修正処理としてそのまま使えます。
以下にソースを載せます。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />

<title>作者編集</title>
</head>
<body>
<?php
function getkazu($str,$c){
$b=explode($c,$str);
return count($b)-1;
}

function getcsv($handle){
$str="" ;
do{
$str = $str.fgets($handle);
$cun = getkazu($str,"\"") ;
}while( ($cun%2)!=0 );
$str = str_replace("\"", '', $str);
return explode(",",$str) ;
}

function ReadCsv($fname){
$records = array() ;
$fname = str_replace(array("\r\n", "\r", "\n"), '', $fname);
if (($handle = fopen($fname, "r")) !== false) {
while (!feof($handle)){
$line = getcsv($handle) ;
if( count($line) == 1 && $line[0] == "" ){
}
else {
       $records[] = $line;
}
 } 
 fclose($handle); 

return $records ;
}

function list_files($dir){
$list = array();
$files = scandir($dir);
$cunt = 0 ;
foreach($files as $file){
        if($file == '.' || $file == '..'){
            continue;
        } else if (is_file($dir . $file)){
            $list[$cunt][0] = $file;
            $tb = ReadCsv($dir.$file);
            $list[$cunt++][1] = $tb[0][0];
        }
    }
    return $list;
}

$result = list_files("../autho/");
print "<div>作者編集</div><br>";
print "<input type=\"button\" onclick=\"window.location.href='./index.php';\" value=\"メニューに帰る\" /><br><br>";
print "<form method=\"POST\" action=\"newautho.php\" name=\"main_form\">";
print "<div>";
print "<input id=\"mode\" type=\"hidden\" name=\"mode\" value=\"2\" />";

print "作者選択<select id='path_dir' name='path_dir' >";
for($mi=0;$mi<count($result);$mi++ ){
print "<option value=\"".$result[$mi][0]."\">".$result[$mi][1]."</option>";
}
print "</select><br>";
print "<input id=\"edit\" type=\"submit\" name=\"edit\" value= \"編集\" />";

print "</div>";
print "</form>";
?>
</body>
</html>
今まで順番に見た方なら解ると思いますが、基本は、全て一緒です。
前回ディレクトリだった所がファイルに変更され、結果が二次元配列にし、表示されるのが、作成ファイル内の作者名にしてあります。ファイル名では、作者が誰だかわからないかもしれないので、ファイル内の作者名を出すように変更しました。
mode は、3固定で、再読み込みにしてあります。これで、前回のページを呼ぶ事により、編集処理となります。
次回は、コミック情報入力処理です。

0 件のコメント:

コメントを投稿