teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

修正

2017/02/16 00:34

投稿

coko1
coko1

スコア276

title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,8 @@
8
8
  上記のような多次元配列をPHPに投げたときにPHP側でどう受け取ればいいのかがわかりません。どのようにしたら多次元配列を受け取れるのかを教えていただけないでしょうか?
9
9
 
10
10
  phpには以下のように投げています。
11
+ ※dataEncodeをした結果は以下のようになっています。
12
+ "0= ['test','AA123456','test','pass']&1=["test2"]&2=['test3','BB123456']"
11
13
  ```
12
14
  var selectQuery = new Object(function(entry, callback, error){
13
15
  if(typeof callback != 'function')return false;

1

修正

2017/02/16 00:34

投稿

coko1
coko1

スコア276

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,50 @@
1
1
  ```javascript
2
- [
2
+ entry = [
3
3
  ['test','AA123456','test','pass']
4
4
  ,['test2']
5
5
  ,['test3','BB123456']
6
6
  ];
7
7
  ```
8
- 上記のような多次元配列をPHPに投げたときにPHP側でどう受け取ればいいのかがわかりません。どのようにしたら多次元配列を受け取れるのかを教えていただけないでしょうか?
8
+ 上記のような多次元配列をPHPに投げたときにPHP側でどう受け取ればいいのかがわかりません。どのようにしたら多次元配列を受け取れるのかを教えていただけないでしょうか?
9
+
10
+ phpには以下のように投げています。
11
+ ```
12
+ var selectQuery = new Object(function(entry, callback, error){
13
+ if(typeof callback != 'function')return false;
14
+ if(typeof error != 'function')error = function(arg){};
15
+ var requestObj = common.createXMLHttpRequest();
16
+ requestObj.open('POST', selectQuery.php, true);
17
+ requestObj.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
18
+ requestObj.setRequestHeader( 'X-Requested-With','XMLHttpRequest' );
19
+ requestObj.send(selectQuery.dataEncode(entry));
20
+ requestObj.onreadystatechange = function(){
21
+ if (requestObj.readyState === 4 ) {
22
+ if(requestObj.status === 200){
23
+ var jsonData = JSON.parse(requestObj.responseText);
24
+ callback(jsonData);
25
+ }else{
26
+ error(requestObj);
27
+ }
28
+ }
29
+ }
30
+ return true;
31
+ });
32
+ selectQuery.php = root + '/select_query.php';
33
+ selectQuery.dataEncode = function(data){
34
+ if(typeof data != 'object')return false;
35
+ var params = [];
36
+ for(var idx in data){
37
+ var tmp = data[idx];
38
+ if(tmp.length < 1)return false;
39
+ params.push(idx + '=' + JSON.stringify(tmp));
40
+ }
41
+ return params.join( '&' ).replace( /%20/g, '+' );
42
+ }
43
+
44
+
45
+ ```
46
+
47
+ phpでの受け取り方配下のようにしています。
48
+ ```ここに言語を入力
49
+ $input = array_merge($_GET, $_POST);
50
+ ```