質問編集履歴

1

現在、行っている事についてだけ記述し直しました。よろしくお願いいたします。

2018/10/03 11:11

投稿

1004
1004

スコア74

test CHANGED
File without changes
test CHANGED
@@ -24,21 +24,49 @@
24
24
 
25
25
 
26
26
 
27
- 「新規作成」を押すと変数iで新規アコーディオンが追加されます。(同じくDBにも同じidで追加されます。)2回目に同じことを行うと```i = i + 1```を入れたはずなのにも関わらず、変数iがインクリメントされないまま(```i = 1```のまま)プログラムが実行されてしまいます。これを正しくインクリメントさせるにはどうすれば良いか分かりません。
27
+ 「新規作成」を押すと変数iで新規アコーディオンが追加されます。
28
-
28
+
29
- (※インクリメントに成功したとしてもJavaScriptだと変数iが一時的にしか保持されず、ブラウザを再度立ち上げて同じことを行おうとすると、再度```i = 1```からになり、うまくいきそうにありません。)
29
+ (※JavaScriptだと変数iが一時的にしか保持されず、ブラウザを再度立ち上げて同じことを行おうとすると、再度```i = 1```からになり、うまくいきそうにありません。)
30
30
 
31
31
 
32
32
 
33
33
  【解決に向けて考えていること】
34
34
 
35
- 1、まず、DBid(一意)を```i```に格納し、「新規作成」ボタンをクリックしたときに対応できるようしま(例えば、「新規作成」が5回目なら、iに```id=i=5```とする。次に「新規作成ボタンを押すと」DBが1行作られてidが決まり、今度はその```i```の値を格納する。)
36
-
37
-
38
-
39
- 2、idをDBから取得するのは面倒なの、PHPのセッション変数を```i```に格納てみる。
40
-
41
- (案2の方が実装が楽だと思いました。)しかし、コーディングのやり方が分かりません。
35
+ PHPセッション変数を```i```に格納してみようしました
36
+
37
+ しかし、スクリプトの中身にPHPを入れると「新規作成」ボタンが動かなくなります。
38
+
39
+ コードのどこが間違っているのでしょうか?
40
+
41
+
42
+
43
+ ####問題の個所を部分的に抜粋しました↓
44
+
45
+ ```
46
+
47
+ <script>
48
+
49
+ function add()
50
+
51
+ {
52
+
53
+ var div_element = document.createElement("div");
54
+
55
+ <?php $_SESSION['i'] = 1; ?>
56
+
57
+ div_element.innerHTML = '<div id="accordion"><div class="card"><div class="card-header" id="headingOne"><h5 class="mb-0"><button class="btn btn-link" data-toggle="collapse" data-target="#collapse' + i +'" aria-expanded="true" aria-controls="collapse' + i +'"><textarea name="title" class="form-control" rows="1" maxlength="20" placeholder="日記のタイトルを入力"></textarea></button><div class="float-right"><a href="" class="btn btn-primary btn-lg active" role="button" aria-pressed="true">Delete</a></div></h5></div><div id="collapse' + i +'" class="collapse" aria-labelledby="headingOne" data-parent="#accordion"><div class="card-body"><div class="container"><form method="post">内容<textarea name="contents" class="form-control" maxlength="80" placeholder="日記の内容を入力"></textarea></form></div></div></div></div></div>';
58
+
59
+ var parent_object = document.getElementById("piyo");
60
+
61
+ parent_object.appendChild(div_element);
62
+
63
+ <?php $_SESSION['i'] = $_SESSION['i'] + 1; ?>
64
+
65
+ }
66
+
67
+ </script>
68
+
69
+ ```
42
70
 
43
71
 
44
72
 
@@ -252,7 +280,7 @@
252
280
 
253
281
 
254
282
 
255
- PHPのセッション変数をJavaScriptのfunction add()関数の中に入れてみようとしましたが記述方法がかりませんでした。
283
+ PHPのセッション変数をJavaScriptのfunction add()関数の中に入れてみようとしましたが記述方法が間違っているの、「新規作成」ボタンを押しても何も動作しなくなりました。
256
284
 
257
285
 
258
286