回答編集履歴

2

markdown修正

2015/09/29 05:51

投稿

think49
think49

スコア18162

test CHANGED
@@ -26,15 +26,11 @@
26
26
 
27
27
  > echoした結果は
28
28
 
29
- >
30
-
31
29
  > <option value="Aコース">Aコース</option>
32
30
 
33
31
  > <option value="Bコース">Bコース</option>
34
32
 
35
33
  > <option value="Cコース">Cコース</option>
36
-
37
- >
38
34
 
39
35
  > と表示されます。
40
36
 

1

補足回答

2015/09/29 05:51

投稿

think49
think49

スコア18162

test CHANGED
@@ -5,3 +5,99 @@
5
5
 
6
6
 
7
7
  これだけでは原因を特定できませんのでPHPが出力したHTMLを確認して開示してください。
8
+
9
+
10
+
11
+ **(9/29 14:42追記)**
12
+
13
+ 繰り返すようですが、php で `echo` するのではダメなのでしょうか。
14
+
15
+ 挙げられている条件だけならば、下記コードで期待通りに動作するはずです。
16
+
17
+
18
+
19
+ ```PHP
20
+
21
+ <select class="course"><?php echo $coursestr; ?></select>
22
+
23
+ ```
24
+
25
+
26
+
27
+ > echoした結果は
28
+
29
+ >
30
+
31
+ > <option value="Aコース">Aコース</option>
32
+
33
+ > <option value="Bコース">Bコース</option>
34
+
35
+ > <option value="Cコース">Cコース</option>
36
+
37
+ >
38
+
39
+ > と表示されます。
40
+
41
+
42
+
43
+ であるならば、JavaScript コードは下記のようになりますが、SyntaxError で強制終了される為、**これが真実ならば別の処理で2回 option 要素が挿入されている**事になります。
44
+
45
+
46
+
47
+ ```JavaScript
48
+
49
+ $(function(){
50
+
51
+ // この下の行で「SyntaxError: Unexpected token ILLEGAL」になる
52
+
53
+ $('select.course').append('<option value="Aコース">Aコース</option>
54
+
55
+ <option value="Bコース">Bコース</option>
56
+
57
+ <option value="Cコース">Cコース</option>');
58
+
59
+ });
60
+
61
+ ```
62
+
63
+
64
+
65
+ 挙げられている条件だけならば上のコードから改行を除くだけで期待通りに動作します(jsfiddleで確認済)
66
+
67
+ - [Edit fiddle - JSFiddle](http://jsfiddle.net/1Lfubzpa/)
68
+
69
+
70
+
71
+ ```HTML
72
+
73
+ <select class="course"></select>
74
+
75
+
76
+
77
+ <script>
78
+
79
+ 'use strict';
80
+
81
+ $(function(){
82
+
83
+ $('select.course').append('<option value="Aコース">Aコース</option><option value="Bコース">Bコース</option><option value="Cコース">Cコース</option>');
84
+
85
+ });
86
+
87
+ </script>
88
+
89
+ ```
90
+
91
+
92
+
93
+ おそらく、実際には書いていない条件が複数あるのでしょう。
94
+
95
+ まず、問題の切り分けして下さい。
96
+
97
+ PHPが出力するHTMLを適当な場所に保存して不要な箇所を削除して動作に違いが出るか確認しましょう。
98
+
99
+ そして、問題が際限される最小限のコードがわかったらどの部分に原因があるかを突き止めます。
100
+
101
+ それでもわからなければ、最小限のコードをここに貼って質問してみてください。
102
+
103
+