気づけばプロ並みPHPでスタッフ一覧から分岐画面を作っています。
header()関数を使うと次の画面に移動せず画面が真っ白になります。
何か単純ミスだとは思うのですが自分では解決できず
お力添えいただければ幸いです。
staff_list.phpコード
$sql = 'SELECT id,name FROM staff WHERE 1'; $stmt = $dbh->prepare($sql); $stmt->execute(); $dbh = null; print '<p>スタッフ一覧</P>'; print '<form method="post" action="branch.php">'; while ($rec = $stmt->fetch(PDO::FETCH_ASSOC)) { print '<input type="radio" name="id" value="'.$rec['id'].'">'; print $rec['name'] . '<br/>'; } print '<input type="submit" name="edit" value="修正">'; print'<input type="submit" name="delete" value="削除">'; print '</form>'; } catch (Exception $e) { print $e->getMessage(); } ?>
分岐画面branch.phpコード
<body> <?php if(isset($_POST['edit'])){ $id=$_POST['id']; header("Location:staff_edit.php?id=".$id); exit(); } if(isset($_POST['delete'])){ $id=$_POST['id']; header("Location:staff_delete.php?id=".$id); exit(); }?> </body> </html>staff_edit.phpコード
<?php try { $id=$_GET['id']; $dbh = new PDO('mysql:host=mysql144.phy.lolipop.lan;dbname=XXXX;charaset=UTF8', 'XXXX', 'XXXX',); $sql = 'SELECT name FROM staff WHERE id=?'; $stmt = $dbh->prepare($sql); $data[] = $id; $stmt->execute($data); $rec = $stmt->fetch(PDO::FETCH_ASSOC); $staff_name = $rec['name']; $dbh = null; } catch (Exception $e) { print $e->getMessage(); exit(); } ?></body><h1>スタッフ修正</h1> <?php print 'スタッフコード'.$id;?> <br/> <br/> <form method="post" action="staff_edit_check.php"> <input type="hidden" name="id" value="<?php print $id;?>"> <label for="name">スタッフ名</label><br/> <input type="text" id="name" name="name" value="<?php print $staff_name;?>"><br/> <label for="password">パスワードを入力してください</label><br/> <input id="password" type="password" name="password"><br/> <label for="password2">パスワードをもう一度入力してください</label><br/> <input id="password2" type="password" name="password2"><br/><br/> <input type="button" onclick="history.back()" value="戻る"> <input type="submit" value="OK"> </form>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/08 05:08