実現したい事
todoリストのtodoをチェックし、「チェックしたtodoを削除する」ボタンを押すとdelete.phpに飛ばされ、チェックしたtodoが削除される仕組みを作りたいです。todoを個別に削除できるように、チェックボックスのnameにはそれぞれのidを入れています。
分からない事
todoのチェックボックスにチェックを入れて、「チェックしたtodoを削除する」ボタンを押すと、delete.phpに飛ばされますが「undefined index」が表示され、idを受け取る事ができていません。
なぜ受け取れないのか理由が分かりません。
試した事
var_dump($id);でidの中身を確認するとNULLになっていました。
php
1【index.phpのコード】 2<?php 3require_once('config.php'); 4require_once('common.php'); 5 6$pdo = new PDO(DSN, DB_USER, DB_PASS); 7 8$todo = $pdo->prepare("SELECT * FROM todo_add ORDER BY todo_name DESC"); 9$todo->execute(); 10 11?> 12 13<!doctype html> 14<html> 15<head> 16<meta charset="utf-8"> 17<meta name="viewport" content="width=device-width, initial-scale=0"> 18<title>todoリスト</title> 19<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@700&display=swap" rel="stylesheet"> 20<link href="css/base.css" rel="stylesheet" type="text/css"> 21<link href="css/common.css" rel="stylesheet" type="text/css"> 22<link href="css/top.css" rel="stylesheet" type="text/css"> 23<script src="js/jquery-3.4.1.min.js"></script> 24<script type="text/javascript" src="js/test.js"></script> 25</head> 26<body> 27 <main> 28 <h1>Todoリスト</h1> 29 <section class="program_wrapper"> 30 <div class="program_area"> 31 <div class="new_add_block"> 32 <a class="blue_btn" href="add.php">todoを追加する</a> 33 </div><!--/.new_add_block --> 34 <div class="todo_list_block"> 35 <h2 class="blue_hd"><span class="name">todo名</span><span class="deadline">〆切日</span><span class="important">重要度</span></h2> 36 <form method="post" action="delete.php"> 37 <ul class="todo_list"> 38 <?php foreach($todo as $loop): ?> 39 <li> 40 <?php $id = $loop['id'] ?> 41 <input class="checkbox" type="checkbox" value="<?php echo $id ?>" name="<?php echo $id ?>"> 42 <?php var_dump($id); ?> 43 <a class="todo_link" href="detail.php?id=<?php echo $id ?>"> 44 <?php echo $loop["todo_name"] ?></a> 45 <p class="todo_deadline"> 46 <?php 47 if($loop["todo_deadline"] === '0000-00-00'){ 48 echo ''; 49 }else{ 50 echo $loop["todo_deadline"]; 51 } 52 ?> 53 </p> 54 <p class="todo_important"><?php echo $loop["todo_important"] ?></p> 55 </li> 56 <?php endforeach; ?> 57 </ul><!--/.todo_list --> 58 <input class="complete_btn" type="submit" value="チェックしたtodoを削除する" name="complete_btn"> 59 </form> 60 </div><!--/.todo_list_block --> 61 </div><!--/.program_area --> 62 </section><!--/.program_wrapper --> 63<section class="section_2"> 64</section> 65</main> 66</body> 67</html> 68
php
1【delete.phpのコード】 2<?php 3require_once('config.php'); 4require_once('common.php'); 5 6$id = $_POST['id']; 7 8$pdo = new PDO(DSN, DB_USER, DB_PASS); 9 10$todo = $pdo->prepare("DELETE FROM todo_add WHERE id = :id"); 11$todo->bindParam(":id", $id); 12$todo->execute(); 13//header('Location:index.php'); 14//exit(); 15 16?> 17
ご回答よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/09 03:56
2020/11/09 04:44
2020/11/09 05:06
2020/11/09 05:33
2020/11/09 07:41