###前提・実現したいこと
php,mysqlにてHTMLの<input type="submit" name="">から、
<form method="post" action="schedule_edit_done.php">にnameによる判定で飛ばして情報の更新、削除の処理を同ページで行いたいです。更新、削除の処理後は一覧に戻る仕組みです。
###発生している問題・エラーメッセージ
PHP Notice: Undefined index: edit in /home/vagrant/schedule_kadai/schedule_edit_done.php on line 24
と出て、どうやら更新を押した時は$delete = $_POST['delete']が、
削除を押した時は$edit = $_POST['edit']が交互にこのメッセージになります。
処理に応じて変数が使われていないため出るのかと思いましたが、更新と削除自体は出来てはいます。
ただ、このエラーメッセージがにならない方法はあるのでしょうか?
###該当のソースコード
<!DOCTYPE html> <html> <body> 途中省略、、、 <form method="post" action="schedule_edit_done.php"> <input type="submit" name="edit" value="登録"> <input type="submit" name="delete" value="削除"> <table> <tr> <td>スケジュールID</td> <td><#SCHEDULEID#></td> </tr> <tr> <td>スケジュール名</td> <td><input type="text" name="name" value="<#NAME#>"></td> </tr> <tr> <td>開始日時</td> <td><input type="number" name="start_year" value="<#STARTYEAR#>">年</td> </tr> <tr> <td>終了日時</td> <td><input type="number" name="end_year" value="<#ENDYEAR#>">年</td> </tr> <tr> <td> <input type="hidden" id="schedule_id" name="schedule_id" value="<#SCHEDULEID#>"> <input type="button" onclick="history.back()" value="戻る"> </form> </td> </tr> </table> </body> </html> <?php $schedule_id = $_POST['schedule_id']; $name = $_POST['name']; $start_year = $_POST['start_year']; $end_year = $_POST['end_year']; $edit = $_POST['edit'];//←ここが削除を選んだ時はPHP Notice: Undefined indexと出ます。 $delete = $_POST['delete'];//ここも更新を選ぶと同じエラーが出ます。 $link = mysqli_connect(DB_SERVER,DB_ACCOUNT_ID,DB_ACCOUNT_PW,DB_NAME); if(!$link){ echo "データベースに接続できていません。"; exit; } mysqli_set_charset($link,"utf8"); if($edit == "登録"){ $query = 'update schedule_info set name = "'.$name.'",start_year= "'.$start_year.'", end_year= "'.$end_year.'" where schedule_id ='.$schedule_id; if($result = mysqli_query($link,$query)){ } else { echo "更新できませんでした。"; exit; } } if($delete == "削除"){ $query_delete = 'delete from schedule_info where schedule_id = "'.$schedule_id.'"'; if($result = mysqli_query($link,$query_delete)){ } else { echo "削除できませんでした。"; exit; } } mysqli_close($link); header('location:./schedule_list.php'); exit(); ?>
###試したこと
最初は
<form method="post" action="edit_complete.php"> <input type="submit" name="edit" value="更新"> </form> <form method="post" action="delete_complete.php"> <input type="submit" name="edit" value="削除"> </form> とformとsubmitを二つ記載してやろうとしたらうまくいかず、formを二つ記入すること自体が正しくないのか、更新処理だけされて、削除ボタンを押しても何も反応がなかったです。###補足情報(言語/FW/ツール等のバージョンなど)
macOS、ATOM、cyberduck、ローカル環境にて利用
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/05/19 04:46