回答編集履歴
5
質問者の「やりたいこと」部分とリンク
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
> jQueryにどう記述すればaaaとbbbだけを抜き取れるか
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
PHPを見た感じJSON形式で返したいように見受けられます。
|
2
6
|
|
3
7
|
受け取る側もJSONを指定しましょう。
|
@@ -74,6 +78,10 @@
|
|
74
78
|
|
75
79
|
|
76
80
|
|
81
|
+
> PHPにどう記述すれば返ってくるデータにhtmlとかheadとかbodyとか不要なものがくっつかなくなるか
|
82
|
+
|
83
|
+
|
84
|
+
|
77
85
|
さらに追記:
|
78
86
|
|
79
87
|
[$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)のsetting部分を見ますと、
|
4
参考先URL
test
CHANGED
@@ -90,6 +90,8 @@
|
|
90
90
|
|
91
91
|
json出力で決まっているのでしたら、header()でapplication/jsonを指定したほうが良いですね。
|
92
92
|
|
93
|
+
- 参考:[StackOverflow:PHPで値を JSON 形式で表示したい場合、 header('content-type: application/json;')は必要?](https://ja.stackoverflow.com/questions/12753/php%E3%81%A7%E5%80%A4%E3%82%92-json-%E5%BD%A2%E5%BC%8F%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%84%E5%A0%B4%E5%90%88-headercontent-type-application-json%E3%81%AF%E5%BF%85%E8%A6%81)
|
93
94
|
|
94
95
|
|
95
96
|
|
97
|
+
|
3
サンプルコード修正
test
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
}
|
42
42
|
|
43
|
-
html+="<ul>";
|
43
|
+
html+="</ul>";
|
44
44
|
|
45
45
|
$('#container').html(html);
|
46
46
|
|
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
```
|
50
50
|
|
51
|
-
|
51
|
+
※あくまでサンプルです。ご自身のデータの状態にあわせて調整してください
|
52
52
|
|
53
53
|
※php時点で[htmlspecialchars()](http://php.net/manual/ja/function.htmlspecialchars.php)はかけておいた方が良いです
|
54
54
|
|
@@ -69,6 +69,8 @@
|
|
69
69
|
だけでいいかもしれませんね。
|
70
70
|
|
71
71
|
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
72
|
+
|
73
|
+
※この場合だとhtmlエスケープかけられないので事前にかけた配列を作って返すなど工夫が必要です
|
72
74
|
|
73
75
|
|
74
76
|
|
2
修正
test
CHANGED
@@ -16,11 +16,41 @@
|
|
16
16
|
|
17
17
|
を指定すると、配列の形式で```data```が返ってきます。
|
18
18
|
|
19
|
-
例えば、複数レコードあるとしたら
|
19
|
+
例えば、複数レコードあるとしたら```data[0].pref_name```で、1番目のデータの```pref_name```、
|
20
20
|
|
21
|
-
|
21
|
+
と言った具合に返ってきた情報へのアクセスが可能となるはずです。
|
22
22
|
|
23
|
-
あとはforなりなんなりループして出力したい形に整形す
|
23
|
+
あとはforなりなんなりで配列```data```をループして出力したい形に整形します。
|
24
|
+
|
25
|
+
例:
|
26
|
+
|
27
|
+
```javascript
|
28
|
+
|
29
|
+
html="<ul>";
|
30
|
+
|
31
|
+
for(i=0;i<data.length;i++){
|
32
|
+
|
33
|
+
html+= "<li>";
|
34
|
+
|
35
|
+
html+= "pref_name:"+data[i].pref_name;
|
36
|
+
|
37
|
+
html+= "|data_name:"+data[i].data_name;
|
38
|
+
|
39
|
+
html+= "</li>";
|
40
|
+
|
41
|
+
}
|
42
|
+
|
43
|
+
html+="<ul>";
|
44
|
+
|
45
|
+
$('#container').html(html);
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
```
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
※php時点で[htmlspecialchars()](http://php.net/manual/ja/function.htmlspecialchars.php)はかけておいた方が良いです
|
24
54
|
|
25
55
|
|
26
56
|
|
@@ -34,19 +64,19 @@
|
|
34
64
|
|
35
65
|
```
|
36
66
|
|
67
|
+
|
68
|
+
|
37
69
|
だけでいいかもしれませんね。
|
38
70
|
|
39
71
|
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
40
72
|
|
41
73
|
|
42
74
|
|
43
|
-
|
44
|
-
|
45
75
|
さらに追記:
|
46
76
|
|
77
|
+
[$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)のsetting部分を見ますと、
|
78
|
+
|
47
79
|
datatypeについては指定されていない場合、デフォルト値をjQuery側が判別しているようなので
|
48
|
-
|
49
|
-
- [$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)
|
50
80
|
|
51
81
|
htmlと判別されて<html>~</html>がくっついてきたんでしょうね。
|
52
82
|
|
@@ -56,4 +86,8 @@
|
|
56
86
|
|
57
87
|
|
58
88
|
|
59
|
-
json出力
|
89
|
+
json出力で決まっているのでしたら、header()でapplication/jsonを指定したほうが良いですね。
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
1
追記
test
CHANGED
@@ -37,3 +37,23 @@
|
|
37
37
|
だけでいいかもしれませんね。
|
38
38
|
|
39
39
|
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
さらに追記:
|
46
|
+
|
47
|
+
datatypeについては指定されていない場合、デフォルト値をjQuery側が判別しているようなので
|
48
|
+
|
49
|
+
- [$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)
|
50
|
+
|
51
|
+
htmlと判別されて<html>~</html>がくっついてきたんでしょうね。
|
52
|
+
|
53
|
+
html()を利用されているのでエスケープはjQueryでの出力時よりも
|
54
|
+
|
55
|
+
phpからの返却時にエスケープされたのかなとは思います(未検証ですが)
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
json出力が決まっているのならheader()でapplication/jsonを指定したほうが良いですね。
|