回答編集履歴
5
質問者の「やりたいこと」部分とリンク
answer
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
> jQueryにどう記述すればaaaとbbbだけを抜き取れるか
|
2
|
+
|
1
3
|
PHPを見た感じJSON形式で返したいように見受けられます。
|
2
4
|
受け取る側もJSONを指定しましょう。
|
3
5
|
|
@@ -36,6 +38,8 @@
|
|
36
38
|
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
37
39
|
※この場合だとhtmlエスケープかけられないので事前にかけた配列を作って返すなど工夫が必要です
|
38
40
|
|
41
|
+
> PHPにどう記述すれば返ってくるデータにhtmlとかheadとかbodyとか不要なものがくっつかなくなるか
|
42
|
+
|
39
43
|
さらに追記:
|
40
44
|
[$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)のsetting部分を見ますと、
|
41
45
|
datatypeについては指定されていない場合、デフォルト値をjQuery側が判別しているようなので
|
4
参考先URL
answer
CHANGED
@@ -44,4 +44,5 @@
|
|
44
44
|
phpからの返却時にエスケープされたのかなとは思います(未検証ですが)
|
45
45
|
|
46
46
|
json出力で決まっているのでしたら、header()でapplication/jsonを指定したほうが良いですね。
|
47
|
+
- 参考:[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)
|
47
48
|
|
3
サンプルコード修正
answer
CHANGED
@@ -19,11 +19,11 @@
|
|
19
19
|
html+= "|data_name:"+data[i].data_name;
|
20
20
|
html+= "</li>";
|
21
21
|
}
|
22
|
-
html+="<ul>";
|
22
|
+
html+="</ul>";
|
23
23
|
$('#container').html(html);
|
24
24
|
|
25
25
|
```
|
26
|
-
|
26
|
+
※あくまでサンプルです。ご自身のデータの状態にあわせて調整してください
|
27
27
|
※php時点で[htmlspecialchars()](http://php.net/manual/ja/function.htmlspecialchars.php)はかけておいた方が良いです
|
28
28
|
|
29
29
|
追記:
|
@@ -34,6 +34,7 @@
|
|
34
34
|
|
35
35
|
だけでいいかもしれませんね。
|
36
36
|
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
37
|
+
※この場合だとhtmlエスケープかけられないので事前にかけた配列を作って返すなど工夫が必要です
|
37
38
|
|
38
39
|
さらに追記:
|
39
40
|
[$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)のsetting部分を見ますと、
|
2
修正
answer
CHANGED
@@ -7,24 +7,40 @@
|
|
7
7
|
dataType: "json"
|
8
8
|
```
|
9
9
|
を指定すると、配列の形式で```data```が返ってきます。
|
10
|
-
例えば、複数レコードあるとしたら
|
10
|
+
例えば、複数レコードあるとしたら```data[0].pref_name```で、1番目のデータの```pref_name```、
|
11
|
-
|
11
|
+
と言った具合に返ってきた情報へのアクセスが可能となるはずです。
|
12
|
-
あとはforなりなんなりループして出力したい形に整形す
|
12
|
+
あとはforなりなんなりで配列```data```をループして出力したい形に整形します。
|
13
|
+
例:
|
14
|
+
```javascript
|
15
|
+
html="<ul>";
|
16
|
+
for(i=0;i<data.length;i++){
|
17
|
+
html+= "<li>";
|
18
|
+
html+= "pref_name:"+data[i].pref_name;
|
19
|
+
html+= "|data_name:"+data[i].data_name;
|
20
|
+
html+= "</li>";
|
21
|
+
}
|
22
|
+
html+="<ul>";
|
23
|
+
$('#container').html(html);
|
13
24
|
|
25
|
+
```
|
26
|
+
|
27
|
+
※php時点で[htmlspecialchars()](http://php.net/manual/ja/function.htmlspecialchars.php)はかけておいた方が良いです
|
28
|
+
|
14
29
|
追記:
|
15
30
|
php側でforeachかけなくても、
|
16
31
|
```PHP
|
17
32
|
echo json_encode($data_row);
|
18
33
|
```
|
34
|
+
|
19
35
|
だけでいいかもしれませんね。
|
20
36
|
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
21
37
|
|
22
|
-
|
23
38
|
さらに追記:
|
39
|
+
[$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)のsetting部分を見ますと、
|
24
40
|
datatypeについては指定されていない場合、デフォルト値をjQuery側が判別しているようなので
|
25
|
-
- [$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)
|
26
41
|
htmlと判別されて<html>~</html>がくっついてきたんでしょうね。
|
27
42
|
html()を利用されているのでエスケープはjQueryでの出力時よりも
|
28
43
|
phpからの返却時にエスケープされたのかなとは思います(未検証ですが)
|
29
44
|
|
30
|
-
json出力
|
45
|
+
json出力で決まっているのでしたら、header()でapplication/jsonを指定したほうが良いですね。
|
46
|
+
|
1
追記
answer
CHANGED
@@ -17,4 +17,14 @@
|
|
17
17
|
echo json_encode($data_row);
|
18
18
|
```
|
19
19
|
だけでいいかもしれませんね。
|
20
|
-
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
20
|
+
[json_encode()](http://php.net/manual/ja/function.json-encode.php)は第2引数でオプションを色々と指定できるので用途にあわせて調整してください。
|
21
|
+
|
22
|
+
|
23
|
+
さらに追記:
|
24
|
+
datatypeについては指定されていない場合、デフォルト値をjQuery側が判別しているようなので
|
25
|
+
- [$.ajax() ](http://js.studio-kingdom.com/jquery/ajax/ajax)
|
26
|
+
htmlと判別されて<html>~</html>がくっついてきたんでしょうね。
|
27
|
+
html()を利用されているのでエスケープはjQueryでの出力時よりも
|
28
|
+
phpからの返却時にエスケープされたのかなとは思います(未検証ですが)
|
29
|
+
|
30
|
+
json出力が決まっているのならheader()でapplication/jsonを指定したほうが良いですね。
|