menu


2017年4月27日木曜日

保存・再読み込み機能を付ける③タイトル追加処理

タイトル追加処理を作ります。
考えは、まとまりました。
作れる内容は、コーヒーブレイクで書いたとうりです。
修正ソースは、以下になります。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>新規作者編集</title>
<script>
function setMode(mode){
document.getElementById("mode").value = mode;
}

function addtcount(){
document.getElementById("tcount").value = parseInt(document.getElementById("tcount").value)+1;
}
</script>
</head>
<body>
<?php
$tcount = 1 ;
if( isset($_POST["mode"])){
if( $_POST["mode"] == "1" ){
print "<div>作者編集(保存)</div>";
$tcount = $_POST["tcount"] ;
}
else if( $_POST["mode"]=="2"){
print "<div>作者編集(再読み込み)</div>";
}
else {
print "<div>作者編集(タイトル追加)</div>";
$tcount = $_POST["tcount"] ;
}
}
else {
print "<div>新規作者編集</div>";
}
print "<br>";
print "<form method=\"POST\" action=\"newautho.php\" name=\"main_form\">";
print "<div>";
print "<div style=\"border: solid 1px #202020;margin: 5px 5px 3px;\">";
print "<div style=\"border: solid 0px #202020;margin: 5px 5px 5px 5px;\">";
print "<input id=\"mode\" type=\"hidden\" name=\"mode\" />";
print "<input id=\"tcount\" type=\"hidden\" name=\"tcount\" value=".$tcount." />";
print "著者名:<input id=\"name\" type=\"text\" name=\"name\" size=\"50\" /><br>";
print "  読み:<input id=\"yomi\" type=\"text\" name=\"yomi\" size=\"50\" /><br>";
print "ファイル名:<br>";
print "<input id=\"path_dir\" type=\"text\" name=\"path_dir\" size=\"50\" /><br>";
print "追記事項:<br>";
print "<textarea id=\"info\" name=\"info\" rows=\"4\" cols=\"50\"></textarea><br>";
print "</div>";
print "<input id=\"renewal\" type=\"submit\" name=\"renewal\" onclick=\"setMode(1);\" value= \"保存\" />";
print "<input id=\"renewal\" type=\"submit\" name=\"renewal\" onclick=\"setMode(2);\" value= \"再読み込み\" />";
print "</div>";
print "</div>";
print "<div style=\"border: solid 1px #202020;margin: 5px 5px 3px;\">";
print "作品リスト<br>";
for( $i = 0 ; $i < $tcount ; $i++ ){
print "<div style=\"border: solid 1px #202020;margin: 5px 5px 5px 5px;\">";
print "<div style=\"border: solid 0px #202020;margin: 5px 5px 5px 5px;\">";
print "タイトル<input id=\"title\" type=\"text\" name=\"title\" size=\"50\" /><br>";
print "リンク<input id=\"dir_link\" type=\"text\" name=\"dir_link\" size=\"50\" /><input id=\"Search\" type=\"button\" name=\"Search\" value= \"検索\" /><br>";
print "出版社<input id=\"Publishing_company\" type=\"text\" name=\"Publishing_company\" size=\"50\" /><br>";
print "雑誌名<input id=\"Journal_title\" type=\"text\" name=\"Journal_title\" size=\"50\" /><br>";
print "コメント<br>";
print "<textarea id=\"Comment\" name=\"Comment\" rows=\"4\" cols=\"50\"></textarea><br>";
print "</div>";
print "</div>";
}
print "<input id=\"add\" type=\"submit\" name=\"add\" onclick=\"setMode(3);addtcount();\" value= \"追加\" />";
print "</div>";

print "</div>";
print "</form>";

?>
</body>
</html>

function addtcount(){
document.getElementById("tcount").value = parseInt(document.getElementById("tcount").value)+1;
}
これは、新しく作ったタイトル数カウンター追加処理で、タイトル数を1増やします。
今回追加した中にタイトル数カウンターがありますので、その値をふやします。

$tcount = 1 ;
php が使うタイトル数カウンターです。基本は、1とします。

$tcount = $_POST["tcount"] ;
タイトル追加で実行された場合、引数のtcount でタイトル数をもらうので、変数のタイトル数を引数のタイトル数で設定し直します。

print "<input id=\"tcount\" type=\"hidden\" name=\"tcount\" value=".$tcount." />";
mode と同じように引数用に引数にtcount を追加し、php 用変数$tcount を設定します。

for( $i = 0 ; $i < $tcount ; $i++ ){
}
タイトル入力処理をタイトル数くりかえす。

print "<input id=\"add\" type=\"submit\" name=\"add\" onclick=\"setMode(3);addtcount();\" value= \"追加\" />";
追加ボタンを押したらmode =3 にした後、タイトル数+1 処理を実行します。

こんな感じで、修正しました。
確認用にタイトル数を表示しながらボタンを押してテストしてみました!
こんな感じて、コミックタイトル入力が増えました!
見た目だけですが、機能が少しづつ形になってきました。実は、入力されたデータの処理が入ってないんですよね!
入力は、できますが、ボタンを押してしまうと、全て初期化されてしまいます。

また、タイトル入力処理を繰り返しているだけなので、処理的にタイトル1もタイトル2も見分けがつかなのでデータ処理できません!
各処理にあるid = " " は、html から処理を識別する為のid 名の定義です。

name = " " も、同様に使えますし、form の場合は、送信先への引数名になります。

同じ名前では、引数が正しく渡せません。次回は、ここを修正します。



0 件のコメント:

コメントを投稿