単純にデータを追加するより、任意のデータを削除する方が仕組みは複雑になります。まずは削除用の画面を作ってみましょう。
ローテーションバナーの場合、登録する広告はせいぜい10件程度までだと思います。あまりたくさん登録してもクリック率が上がるとは思えません。ということで、1ページに広告の一覧をすべて表示して一つ一つに削除ボタンをつけるスタイルにしたいと思います。
僕が使っているサーバーとドメイン管理のレジストラーです。
§削除画面を作る
単純にデータを追加するより、任意のデータを削除する方が仕組みは複雑になります。
まずは削除用の画面を作ってみましょう。
どうやってデータを特定するかが問題
ローテーションバナーの場合、登録する広告はせいぜい10件程度までだと思います。
あまりたくさん登録してもクリック率が上がるとは思えません。
ということで、1ページに広告の一覧をすべて表示して一つ一つに削除ボタンをつけるスタイルにしたいと思います。
<?php
$Data=file("list.txt");
for ( $i=0; $i<sizeof ( $Data ); $i++ ) { //解説(1)
?>
<form action="<?=$_SERVER[ "PHP_SELF" ]?>" method="POST">
<!--解説(2)-->
<tr>
<td>
<?=$Data[$i]?><input type="hidden" name="n" value="<?=$i?>">
<!--解説(3)-->
</td>
<td>
<input type="submit" name="dell" value="削除">
</td>
</tr>
</form>
<?php
}
?>
</table>
解説(1)
「list.txt」を配列として読み込み、データの数だけ繰り返し処理をし、すべてのデータを表示させます。
解説(2)
form タグの位置に注意してください。
「for(){〜}」内に置き、1行1行独立させます。
forの外に置いてしまうとデータが特定できず、一番最後のデータが削除されます。
解説(3)
「input type="hidden"」は隠しフィールドです。
ページには表示されませんが、value の値が送信されます。
「$i」の値は、処理を繰り返すたびに一つずつ加算されるので配列の数値インデックスと一致します。
「$i」の値によって、削除するデータを特定します。