###前提・実現したいこと
確認画面(2.php)では、SESSIONに保存した値を取り出せるが
DBへ登録するとき(3.php)には、SESSIONに保存した値をどう取り出せばよいでしょうか?
DB登録処理の際には、どうすれば値を取り出せるでしょうか?
###該当のソースコード
ファイル名:1.php <?php session_start(); if(!empty($_POST)){ $_SESSION['join2'] = $_POST; header('Location: 2.php'); } ?> <script type="text/javascript"> /*スキルエリアのセレクトボックスセットのクローン*/ function skill_selectAdd(){ var get = document.getElementById("skill_select"); var set = get.cloneNode(true); var target = document.getElementById("skill_selectAdd"); var btn_delete = document.getElementById("skill_select_btnDel"); set.id= "test" + target.children.length;//idの重複を防ぐため、連番をつけておく target.parentNode.insertBefore(set, target); btn_delete.disabled = false; } /*スキルエリアのセレクトボックスセットの削除*/ function skill_selectDel(){ var targets = document.getElementsByClassName("skill_select"); var btn_delete = document.getElementById("skill_select_btnDel"); if (targets.length === 2) { btn_delete.disabled = true; } targets[1].parentNode.removeChild(targets[targets.length - 1]);//最後の要素を削除 } </script> <form action="" method="post"> <tr id="skill_select" class="skill_select"> <td> <select name="programs1_[]"> <?php echo Programmerskill::getSkill(); ?> </select> </td> <td> <select name="programs_year1_[]"> <?php echo Skillyear::getYear(); ?> </select> </td> </tr> <tr id="skill_selectAdd"> <td colspan="2"> <input type="button" value="追加" onClick="skill_selectAdd()"> <input type="button" value="削除" onClick="skill_selectDel()" id="skill_select_btnDel" disabled="true"> </td> </tr> <input type="submit" name="submit" value="プレビュー"> </form>
ファイル名:2.php <?php session_start(); ?> <form action="3.php" method="post"> <td> <?php $arr = $_SESSION['join2']['programs1_']; for($i=0;$i < count($arr);$i++ ) { echo h($arr[$i]).'<br />'; } ?> </td> <td> <?php $arr = $_SESSION['join2']['programs_year1_']; for($i=0;$i < count($arr);$i++ ) { echo h($arr[$i]).'<br />'; } ?> </td> <input type="submit" name="submit" value="確定"> </form>
ファイル名:3.php <?php session_start(); $dsn = 'mysql:dbname=test;host=localhost;charset=utf8'; $user = 'root'; $password = ''; $option = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); $pdo = new PDO($dsn, $user, $password, $option); $user_id = $pdo->lastInsertId(); $stmt = $pdo->prepare("INSERT INTO user_skill(user_id,skill,year) VALUES (?, ?, ?)"); $stmt->execute([ $user_id, ???, ??? ]); $stmt = $pdo->prepare("INSERT INTO user_skill(user_id,skill,year) VALUES (?, ?, ?)"); $stmt->execute([ $user_id, ???, ??? ]); $stmt = $pdo->prepare("INSERT INTO user_skill(user_id,skill,year) VALUES (?, ?, ?)"); $stmt->execute([ $user_id, ???, ??? ]); ?>
???,
???
の部分が分かりません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/21 01:33 編集