編集ボタン機能は完成したものの、削除ボタン機能を追加する場合、listup.phpをどのように記述し直せばよいのでしょうか。<(_"_)>
〜listup.php〜
<form action="input.php" method="post">
<table id="table" border="1">
<?php $ct=0;
while($data = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td><input type='checkbox' name='chk[]' value='".$data["id"]."'></td>";
echo "<td>".$data['id']."</td>";
echo "<td>".$data['name']."</td>";
echo "</tr>";
$ct++;
}
?>
</table>
<input type='submit' name='update' value=' 編 集 ' />
</form>
<form action="delete.php" method="post" >
<input type='submit' name='delete' value=' 削 除 ' />
</form>
<?php
mysqli_free_result($result);
mysqli_close($link);
?>
〜delete.php〜
<?php
$dataCount = count($_POST['chk']);
for($ct=0; $ct<$dataCount; $ct++) {
$sql = "delete from A where id = '". $_POST["chk"][$ct] ."'";
$result = mysqli_query($link, $sql);
if(!$result){
echo "SQL文の発行に失敗しました<br>";
exit();
}
}
mysqli_free_result($result);
mysqli_close($link);
?>
質問にある list.php に追記してみました。元のコードを、なるべく残すようにしてあります。
<form action="input.php" method="post"> <table id="table" border="1"> <?php $ct=0; while($data = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td><input type='checkbox' name='chk[]' value='".$data["id"]."'></td>"; echo "<td>".$data['id']."</td>"; echo "<td>".$data['name']."</td>"; echo "</tr>"; $ct++; } ?> </table> <input type='submit' name='update' value=' 編 集 ' /> <input type='submit' name='delete' value=' 削 除 ' /> <!-- ★ こちらに移動しました --> </form> <!-- ★ input type='submit' のボタンは、form の中にまとめます <form action="delete.php" method="post" > <input type='submit' name='delete' value=' 削 除 ' /> </form> --> <?php mysqli_free_result($result); mysqli_close($link); ?> <!-- ★ この script を追記します --> <script> window.onload = function () { var inps = document.getElementsByTagName("input"); for (var i = 0 ; i < inps.length ; ++i) { if (inps[i].type == "submit") { inps[i].onclick = function () { // ★ submit ボタンと、action に指定する URL の対応です var action_map = { "update" : "input.php", "delete" : "delete.php", }; this.form.action = action_map[this.name]; }; } } } </script> <!-- ★ ここまで -->
ポイントは、みっつ。
name='update' のときの input.php は、form に既に書かれているので、同じ値で書き換えるのは、処理としては冗長ですが、処理の考え方、という意味で、敢えて書いています。
ボタンの数が増えたとき(ないかもしれませんが)でも、考え方は一緒です。
なお、ボタンの探し方や、処理の登録の仕方には、色々な書き方があります。
ここで示したのは、あくまでも一例ということで。
質問にある list.php に追記してみました。元のコードを、なるべく残すようにしてあります。
<form action="input.php" method="post"> <table id="table" border="1"> <?php $ct=0; while($data = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td><input type='checkbox' name='chk[]' value='".$data["id"]."'></td>"; echo "<td>".$data['id']."</td>"; echo "<td>".$data['name']."</td>"; echo "</tr>"; $ct++; } ?> </table> <input type='submit' name='update' value=' 編 集 ' /> <input type='submit' name='delete' value=' 削 除 ' /> <!-- ★ こちらに移動しました --> </form> <!-- ★ input type='submit' のボタンは、form の中にまとめます <form action="delete.php" method="post" > <input type='submit' name='delete' value=' 削 除 ' /> </form> --> <?php mysqli_free_result($result); mysqli_close($link); ?> <!-- ★ この script を追記します --> <script> window.onload = function () { var inps = document.getElementsByTagName("input"); for (var i = 0 ; i < inps.length ; ++i) { if (inps[i].type == "submit") { inps[i].onclick = function () { // ★ submit ボタンと、action に指定する URL の対応です var action_map = { "update" : "input.php", "delete" : "delete.php", }; this.form.action = action_map[this.name]; }; } } } </script> <!-- ★ ここまで -->
ポイントは、みっつ。
name='update' のときの input.php は、form に既に書かれているので、同じ値で書き換えるのは、処理としては冗長ですが、処理の考え方、という意味で、敢えて書いています。
ボタンの数が増えたとき(ないかもしれませんが)でも、考え方は一緒です。
なお、ボタンの探し方や、処理の登録の仕方には、色々な書き方があります。
ここで示したのは、あくまでも一例ということで。
a-kuma3
まさに、私が教えていただきたかったJavaScriptです! 他にもいろいろやり方があるようで、様々なQ&Aを参考にやってみましたが、なかなかうまくいかなかったので、大変助かりました。今夜はぐっすり眠れそうです(笑)。丁寧にわかりやすい回答をしてくださり、ありがとうございました♬*1
*1:o( ' ▽ ' )o