PHPのデータの受け渡しがうまくできない、教えてください(><)
解決したいこと
今勉強のためにCRUD処理を行っているのですが、
DELETE処理を行うために削除項目を選択しOKを押した後
完了画面に移動しそこにDELETE文を記述しているのですが完了画面に映る際うまくデータが飛んでくれてない状態でなぜダメなのか自分ではまだ気づけていないので
ご指摘をいただきたいです!
発生している問題・エラー
Warning: Undefined array key "code" in
C:~~\delete_done.php on line 13
削除項目を選択する画面
list.php
$sql = 'SELECT code,name FROM mst_staff WHERE 1';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$dbh = null;
print 'スタッフ一覧<br/><br/>';
print '<form method="post" action="staff_branch.php">';
while(true){
$rec = $stmt->fetch(PDO::FETCH_ASSOC);
if($rec == false){
break;
}
print '<input type="radio" name="staffcode" value="'.$rec['code'].'">';
print $rec['name'];
print '<br/>';
}
print '<input type="submit" name="edit" value="修正">';
print '<input type="submit" name="delete" value="削除">';
print '</form>';
}
ページ移行画面
branch.php
if(isset($_POST['delete'])==true){
if(isset($_POST['staffcode'])==false){
header('Location:staff_ng.php');
exit();
}
$staff_code = $_POST['staffcode'];
header('Location:staff_delete.php?staffcode='.$staff_code);
exit();
}
削除していいかの確認画面
check.php
$sql = 'SELECT name FROM mst_staff WHERE code=?';
$stmt = $dbh->prepare($sql);
$data[] = $staff_code;
$stmt->execute($data);
$rec = $stmt->fetch(PDO::FETCH_ASSOC);
$staff_name = $rec['name'];
$dbh = null;
}
catch(Exception $e){
print 'ただいま障害により大変ご迷惑をおかけしております。<br/>申し訳ございません。';
exit();
}
?>
スタッフ削除<br/>
<br/>
スタッフコード<br/>
<?php print $staff_code; ?>
<br/>
スタッフ名<br/>
<?php print $staff_name; ?>
<br/>
このスタッフの情報を削除してもよろしいですか?<br/>
<br/>
<form method="post" action="staff_delete_done.php">
<input type="button" onclick="history.back()" value="戻る">
<input type="submit" value="OK">
</form>
エラーが起きている完了画面(エラー箇所は $staff_code = $_POST['code'];)
done.php
$staff_code = $_POST['code'];
$dsn = 'mysql:dbname=shop;host=localhost;charset=utf8';
$user = 'root';
$password = '';
$dbh = new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql = 'DELETE FROM mst_staff WHERE code=?';
$stmt = $dbh->prepare($sql);
$data[] = $staff_code;
$stmt->execute($data);
$dbh = null;
自分で試したこと
POSTをGETにしたりなどは試したのですがダメで自分では気づけないためどうかご指摘をお願いします(><)
0