teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

8

追記

2016/06/20 01:46

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -172,4 +172,4 @@
172
172
  「ない分」を記述しておくのは非常に気持ち悪くて
173
173
  それなら、preview.phpみたいに
174
174
  $arr = $_SESSION['join2']['programs1_'];
175
- というふうにしてせめてスマートな記述にしたいなとって質問してみたのですが今回は無理がありそうですかね...?
175
+ というふうにしてせめてスマートな記述にしたいなとって質問してみたのですが今回は無理がありそうですかね...?

7

追記

2016/06/20 01:46

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -158,4 +158,18 @@
158
158
 
159
159
  すいません、なんかごっちゃになってきて
160
160
  確認画面では確認だから「ある分」だけを表示させればいいんですが
161
- DB登録処理はあるない関わらず、「ない分」も用意しておかないといけませんね...
161
+ DB登録処理はあるない関わらず、「ない分」も用意しておかないといけませんね...
162
+
163
+ というのは、ユーザーがもう一個追加を押したら確認画面には追加分も表示されるでしょうが、
164
+ DB登録処理には
165
+ $_SEESION['join2']['programs1_7'],
166
+ $_SEESION['join2']['programs_year1_7']
167
+ を追加しなくてはなりませんから
168
+ そういう意味で「ない分」も記述しておく必要がありそうですね...
169
+
170
+
171
+ 素人思考だと、
172
+ 「ない分」を記述しておくのは非常に気持ち悪くて
173
+ それなら、preview.phpみたいに
174
+ $arr = $_SESSION['join2']['programs1_'];
175
+ というふうにしてせめてスマートな記述にしたいなと追って質問してみたのですが今回は無理がありそうですかね...?

6

追記

2016/06/20 01:36

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -111,7 +111,7 @@
111
111
  $option = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
112
112
  $dbh = new PDO($dsn, $user, $password, $option);
113
113
 
114
- $stmt = $pdo->prepare("INSERT INTO user_skill() VALUES (?, ?, ?, ?, ?, ?)");
114
+ $stmt = $pdo->prepare("INSERT INTO user_skill() VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
115
115
  $stmt->execute([
116
116
  $_SEESION['join2']['programs1_1'],
117
117
  $_SEESION['join2']['programs_year1_1'],

5

追記

2016/06/20 01:20

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -154,4 +154,8 @@
154
154
 
155
155
  これはthanks.phpにも同じことがいえて、
156
156
  「ある分」だけを登録するようにしたい(そうすることで記述もスマートになる?)
157
- のですが、どうすればよろしいでしょうか?
157
+ のですが、どうすればよろしいでしょうか?
158
+
159
+ すいません、なんかごっちゃになってきて
160
+ 確認画面では確認だから「ある分」だけを表示させればいいんですが
161
+ DB登録処理はあるない関わらず、「ない分」も用意しておかないといけませんね...

4

追記

2016/06/20 01:19

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -137,6 +137,16 @@
137
137
  としてループさせているから記述量がすくないのですが、
138
138
  echo $_SEESION['jion2']['programs1_1'];
139
139
  echo $_SEESION['jion2']['programs_year1_1'];
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
140
150
  とやろうと思えばできます。
141
151
 
142
152
  でも、追加がどれくらい押されるか分からないので

3

追記

2016/06/20 01:16

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -113,18 +113,18 @@
113
113
 
114
114
  $stmt = $pdo->prepare("INSERT INTO user_skill() VALUES (?, ?, ?, ?, ?, ?)");
115
115
  $stmt->execute([
116
- $_SEESION['jion2']['programs1_1'],
116
+ $_SEESION['join2']['programs1_1'],
117
- $_SEESION['jion2']['programs_year1_1'],
117
+ $_SEESION['join2']['programs_year1_1'],
118
- $_SEESION['jion2']['programs1_2'],
118
+ $_SEESION['join2']['programs1_2'],
119
- $_SEESION['jion2']['programs_year1_2'],
119
+ $_SEESION['join2']['programs_year1_2'],
120
- $_SEESION['jion2']['programs1_3'],
120
+ $_SEESION['join2']['programs1_3'],
121
- $_SEESION['jion2']['programs_year1_3'],
121
+ $_SEESION['join2']['programs_year1_3'],
122
- $_SEESION['jion2']['programs1_4'],
122
+ $_SEESION['join2']['programs1_4'],
123
- $_SEESION['jion2']['programs_year1_4'],
123
+ $_SEESION['join2']['programs_year1_4'],
124
- $_SEESION['jion2']['programs1_5'],
124
+ $_SEESION['join2']['programs1_5'],
125
- $_SEESION['jion2']['programs_year1_5'],
125
+ $_SEESION['join2']['programs_year1_5'],
126
- $_SEESION['jion2']['programs1_6'],
126
+ $_SEESION['join2']['programs1_6'],
127
- $_SEESION['jion2']['programs_year1_6']
127
+ $_SEESION['join2']['programs_year1_6']
128
128
  ]);
129
129
 
130
130
  session_destroy();

2

追記

2016/06/20 01:15

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -65,7 +65,7 @@
65
65
  </form>
66
66
  ```
67
67
 
68
-
68
+ preview.php
69
69
 
70
70
  セレクトボックスで選択した3セット分(6件)の内容が表示されます。
71
71
 

1

追記

2016/06/20 01:13

投稿

earnest_gay
earnest_gay

スコア615

title CHANGED
File without changes
body CHANGED
@@ -4,10 +4,10 @@
4
4
 
5
5
  ↓input.php
6
6
 
7
- 3つのセレクトボックス洗濯して
7
+ 追加2回押して
8
- プレビュボタンした
8
+ 計6フォ入力したとして、
9
- セッションにPOSTの内容保存して
9
+ 6フォーム分の値をセッションに保存して
10
- 確認ページへ行きます。
10
+ 次ページ(確認ページ)にいきます。
11
11
 
12
12
  ```ここに言語を入力
13
13
  <?php
@@ -17,23 +17,57 @@
17
17
  header('Location: preview.php');
18
18
  }
19
19
  ?>
20
+
21
+
22
+ <script type="text/javascript">
23
+ /*スキルエリアのセレクトボックスセットのクローン*/
24
+ function skill_selectAdd(){
25
+ var get = document.getElementById("skill_select");
26
+ var set = get.cloneNode(true);
27
+ var target = document.getElementById("skill_selectAdd");
28
+ var btn_delete = document.getElementById("skill_select_btnDel");
29
+ set.id= "test" + target.children.length;//idの重複を防ぐため、連番をつけておく
30
+ target.parentNode.insertBefore(set, target);
31
+ btn_delete.disabled = false;
32
+ }
33
+ /*スキルエリアのセレクトボックスセットの削除*/
34
+ function skill_selectDel(){
35
+ var targets = document.getElementsByClassName("skill_select");
36
+ var btn_delete = document.getElementById("skill_select_btnDel");
37
+ if (targets.length === 2) {
38
+ btn_delete.disabled = true;
39
+ }
40
+ targets[1].parentNode.removeChild(targets[targets.length - 1]);//最後の要素を削除
41
+ }
42
+ </script>
43
+
44
+
20
45
  <form action="" method="post">
46
+ <tr id="skill_select" class="skill_select">
47
+ <td>
21
- <select name="programs1_[]">
48
+ <select name="programs1_[]">
22
- <?php echo Programmerskill::getSkill(); ?>
49
+ <?php echo Programmerskill::getSkill(); ?>
23
- </select>
50
+ </select>
51
+ </td>
52
+ <td>
24
- <select name="programs1_[]">
53
+ <select name="programs_year1_[]">
25
- <?php echo Programmerskill::getSkill(); ?>
54
+ <?php echo Skillyear::getYear(); ?>
26
- </select>
55
+ </select>
27
- <select name="programs1_[]">
28
- <?php echo Programmerskill::getSkill(); ?>
29
- </select>
56
+ </td>
57
+ </tr>
58
+ <tr id="skill_selectAdd">
59
+ <td colspan="2">
60
+ <input type="button" value="追加" onClick="skill_selectAdd()">
61
+ <input type="button" value="削除" onClick="skill_selectDel()" id="skill_select_btnDel" disabled="true">
62
+ </td>
63
+ </tr>
30
64
  <input type="submit" name="submit" value="プレビュー">
31
65
  </form>
32
66
  ```
33
67
 
34
- preview.php
68
+
35
69
 
36
- セレクトボックスで選択した3分の内容が表示されます。
70
+ セレクトボックスで選択した3セット(6件)の内容が表示されます。
37
71
 
38
72
  ```ここに言語を入力
39
73
  <?php session_start(); ?>
@@ -50,6 +84,14 @@
50
84
  }
51
85
  ?>
52
86
  </td>
87
+ <td>
88
+ <?php
89
+ $arr = $_SESSION['join2']['programs_year1'];
90
+ for($i=0;$i < count($arr);$i++ ) {
91
+ echo h($arr[$i]).'<br />';
92
+ }
93
+ ?>
94
+ </td>
53
95
  </tr>
54
96
  <input type="submit" name="submit" value="確定">
55
97
  </form>
@@ -76,11 +118,30 @@
76
118
  $_SEESION['jion2']['programs1_2'],
77
119
  $_SEESION['jion2']['programs_year1_2'],
78
120
  $_SEESION['jion2']['programs1_3'],
79
- $_SEESION['jion2']['programs_year1_3']
121
+ $_SEESION['jion2']['programs_year1_3'],
122
+ $_SEESION['jion2']['programs1_4'],
123
+ $_SEESION['jion2']['programs_year1_4'],
124
+ $_SEESION['jion2']['programs1_5'],
125
+ $_SEESION['jion2']['programs_year1_5'],
126
+ $_SEESION['jion2']['programs1_6'],
127
+ $_SEESION['jion2']['programs_year1_6']
80
128
  ]);
81
129
 
82
130
  session_destroy();
83
131
  ?>
84
132
  ```
85
133
  execute内に記述してますが、なんか違う気がします。
134
+
135
+ preview.phpでは
136
+ $arr = $_SESSION['join2']['programs1_'];
137
+ としてループさせているから記述量がすくないのですが、
138
+ echo $_SEESION['jion2']['programs1_1'];
139
+ echo $_SEESION['jion2']['programs_year1_1'];
140
+ とやろうと思えばできます。
141
+
142
+ でも、追加がどれくらい押されるか分からないので
143
+ 「ある分」だけを表示させています。
144
+
145
+ これはthanks.phpにも同じことがいえて、
146
+ 「ある分」だけを登録するようにしたい(そうすることで記述もスマートになる?)
86
- どう記述したらよろしいでしょうか?
147
+ のですが、どうすればよろしいでしょうか?