質問編集履歴

2

修正

2017/02/16 00:34

投稿

coko1
coko1

スコア276

test CHANGED
File without changes
test CHANGED
@@ -17,6 +17,10 @@
17
17
 
18
18
 
19
19
  phpには以下のように投げています。
20
+
21
+ ※dataEncodeをした結果は以下のようになっています。
22
+
23
+ "0= ['test','AA123456','test','pass']&1=["test2"]&2=['test3','BB123456']"
20
24
 
21
25
  ```
22
26
 

1

修正

2017/02/16 00:34

投稿

coko1
coko1

スコア276

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ```javascript
2
2
 
3
- [
3
+ entry = [
4
4
 
5
5
  ['test','AA123456','test','pass']
6
6
 
@@ -13,3 +13,87 @@
13
13
  ```
14
14
 
15
15
  上記のような多次元配列をPHPに投げたときにPHP側でどう受け取ればいいのかがわかりません。どのようにしたら多次元配列を受け取れるのかを教えていただけないでしょうか?
16
+
17
+
18
+
19
+ phpには以下のように投げています。
20
+
21
+ ```
22
+
23
+ var selectQuery = new Object(function(entry, callback, error){
24
+
25
+ if(typeof callback != 'function')return false;
26
+
27
+ if(typeof error != 'function')error = function(arg){};
28
+
29
+ var requestObj = common.createXMLHttpRequest();
30
+
31
+ requestObj.open('POST', selectQuery.php, true);
32
+
33
+ requestObj.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
34
+
35
+ requestObj.setRequestHeader( 'X-Requested-With','XMLHttpRequest' );
36
+
37
+ requestObj.send(selectQuery.dataEncode(entry));
38
+
39
+ requestObj.onreadystatechange = function(){
40
+
41
+ if (requestObj.readyState === 4 ) {
42
+
43
+ if(requestObj.status === 200){
44
+
45
+ var jsonData = JSON.parse(requestObj.responseText);
46
+
47
+ callback(jsonData);
48
+
49
+ }else{
50
+
51
+ error(requestObj);
52
+
53
+ }
54
+
55
+ }
56
+
57
+ }
58
+
59
+ return true;
60
+
61
+ });
62
+
63
+ selectQuery.php = root + '/select_query.php';
64
+
65
+ selectQuery.dataEncode = function(data){
66
+
67
+ if(typeof data != 'object')return false;
68
+
69
+ var params = [];
70
+
71
+ for(var idx in data){
72
+
73
+ var tmp = data[idx];
74
+
75
+ if(tmp.length < 1)return false;
76
+
77
+ params.push(idx + '=' + JSON.stringify(tmp));
78
+
79
+ }
80
+
81
+ return params.join( '&' ).replace( /%20/g, '+' );
82
+
83
+ }
84
+
85
+
86
+
87
+
88
+
89
+ ```
90
+
91
+
92
+
93
+ phpでの受け取り方配下のようにしています。
94
+
95
+ ```ここに言語を入力
96
+
97
+ $input = array_merge($_GET, $_POST);
98
+
99
+ ```