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

質問編集履歴

1

ファイルを3つに分けたので、現状のソースを載せました。

2017/03/23 00:01

投稿

chibi
chibi

スコア20

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,8 @@
1
1
  ページを更新させずにjavascriptファイルからPHPファイルへの値渡しをしたくて、ajaxで非同期通信をしようとしているのですが、[null,null]という値しか渡ってきません。
2
2
  successの場合にコンソールに「ajax通信に成功しました」と表示されるようにしていて、それは表示されているので通信はしているのだと思います。
3
3
  どうすればjavascriptファイルの変数の値がPHPファイルで取得できるようになるでしょうか?
4
-
4
+ ```PHP
5
- ```index.php
5
+ index.php
6
6
  <!DOCTYPE html>
7
7
  <html>
8
8
  <head>
@@ -10,10 +10,9 @@
10
10
  <meta http-equiv="x-ua-compatible" content="IE=Edge" />
11
11
  <meta name="viewport" content="width=device-width, user-scalable=no" />
12
12
  <meta name="apple-mobile-web-app-capable" content="yes" />
13
- <title>仮のタイトル</title>
13
+ <title>仮のタイトル</title>
14
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
14
15
 
15
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
16
- <script src="http://code.jquery.com/jquery.js"></script>
17
16
  <script type="text/javascript" src="main.js"></script>
18
17
  <style type="text/css">
19
18
  body {
@@ -21,33 +20,24 @@
21
20
  padding: 0;
22
21
  }
23
22
  </style>
24
-
23
+
25
- <?php
24
+ <?php
26
- //ajax送信でPOSTされたデータを受け取る
27
- echo $post_data_1 = $_POST['post_data_1'];
28
- echo $post_data_2 = $_POST['post_data_2'];
29
- //受け取ったデータを配列に格納
30
- $return_array = array($post_data_1, $post_data_2);
31
- //ヘッダーの設定
32
- header('Content-type:application/json; charset=utf8');
33
- //「$return_array」をjson_encodeして出力
34
- echo json_encode($return_array);
25
+ require("ajax.php");
35
-
36
- ?>
26
+ ?>
37
-
27
+
38
28
  </head>
39
29
  <body>
40
-
41
30
  </body>
42
31
  </html>
43
32
  ```
44
-
33
+ ```JavaScript
45
- ```main.js
34
+ main.js
46
35
  jQuery(function($){
47
36
  //ajax送信
48
37
  $.ajax({
49
- url : "index.php",
38
+ url : "ajax.php",
50
39
  type : "POST",
40
+ dataType:"json",
51
41
  data : {post_data_1:"hoge", post_data_2:"piyo"},
52
42
  error : function(XMLHttpRequest, textStatus, errorThrown) {
53
43
  console.log("ajax通信に失敗しました");
@@ -59,4 +49,16 @@
59
49
  }
60
50
  });
61
51
  });
52
+ ```
53
+ ```PHP
54
+ ajax.php
55
+ <?php
56
+ //ajax送信でPOSTされたデータを受け取る
57
+ $post_data_1 = $_POST['post_data_1'];
58
+ $post_data_2 = $_POST['post_data_2'];
59
+ //受け取ったデータを配列に格納
60
+ $return_array = array($post_data_1, $post_data_2);
61
+ //「$return_array」をjson_encodeして出力
62
+ echo json_encode($return_array);
63
+ ?>
62
64
  ```