前提・実現したいこと
スタッフ情報の修正画面を作成しております。
スタッフリストを修正すると、修正したcodeの値が数字ではなく「on」と表示され、更にスタッフ名の項目が本来はtext内に自動で出力されなければならないのですが、そこに名前の表記はありませんでした。
※これまでの処理の流れ
スタッフを追加する(staff_add.php) → スタッフ情報の確認画面(staff_add_check.php) → 情報の追加を完了させる画面(staff_add_done.php)→ 登録されたスタッフ一覧画面(staff_list.php) → スタッフ情報の修正画面(staff_edit.php)
発生している問題
修正画面にて名前が自動で出力されない。またcodeの値がブラウザ表記で「on」になる。
この2点を教えていただけたら幸いです。
該当のソースコード
<?php try { $staff_code=$_POST['staffcode']; ...... //データベース接続記入欄 $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(Exeption $e) { print'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); } ?> スタッフ修正<br/> <br/> スタッフコード<br/> <?php print $staff_code;?> <br/> <br/> <form method="post"action="staff_edit_check.php"> <input type="hidden"name="code"value="<?php print $staff_code;?>"> スタッフ名<br/> <input type="text"name="name"style="width:200px"value="<?php print $staff_name;?>"><br/> パスワードを入力してください。<br/> <input type="password"name="pass"style="width:100px"><br/> パスワードをもう一度入力してください。<br/> <input type="password"name="pass2"style="width:100px"><br/> <br/> <input type="button"onclick="history.back()"value="戻る"> <input type="submit" value="OK"> </form>
試したこと
●$staff_code=$_POST['staffcode']; → 'staffcode'のところを単に'code'としてみた。
●スタッフを追加する(staff_add.php)項目にて →
スタッフ名を入力してください。<br/>
<input type="text" name="name" style="width: 200px"><br/>のところに、value="name"と加えてみた。
●phpmyadminでの確認
1、AUTO_INCREMENTにはチェックが入っている
2、各レコードにcodeの番号が振られている。
……ずぶの素人なので、試したことの意味がまるで理に適っていないかもしれません。その点は特に気にしていただかない方が良さそうです(混乱させてしまうので)。
補足情報(FW/ツールのバージョンなど)
phpmyadminに関してはxamppのバージョン7.2.3を利用しています。
更に補足です ↓↓↓
ご指摘にありました、staffcodeというnameがinputされたのは、上記(staff_edit.php)の一つ前の画面、登録されたスタッフの一覧画面(staff_list.php)からでした。そのstaff_list.phpの記述を念のため下記に記しておきます。staffcodeはこの中では後半のwhile処理のif文に登場します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ろくまる農園</title> </head> <body> <?php ini_set('display_errors', "On"); ?> <?php error_reporting(E_ALL & ~ E_DEPRECATED & ~ E_USER_DEPRECATED & ~ E_NOTICE); ?> <?php try { $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='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_edit.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"value="修正">'; print'</form>'; } catch(Esception $e) { print'ただいま障害により大変ご迷惑をお掛けしております。';exit(); } ?> </body> </html>
もしおかしな点がございましたら、ご回答のご協力をいただければと思います。
回答2件
あなたの回答
tips
プレビュー