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

回答編集履歴

3

jsonの中身が間違っていたので修正

2017/11/20 10:05

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -5,8 +5,8 @@
5
5
  <!-- 各ボタンにajax_sendというクラスを与えていることと、data-post-dataで送りたいパラメータを持たせているのがポイント -->
6
6
  <ul id="list">
7
7
  <li id="button_1" class="ajax_send" data-host-url="http://192.168.111.111/api" data-post-data="{btn:'A',pc:1,lang:'jp'}"><img src="/img/jp/JP1.png" width="345px" alt="" id="title_1"></li>
8
- <li id="button_2" class="ajax_send" data-host-url="http://192.168.111.111/api" data-post-data="{btn:'A',pc:1,lang:'jp'}"><img src="/img/jp/JP2.png" width="345px" alt="" id="title_2"></li>
8
+ <li id="button_2" class="ajax_send" data-host-url="http://192.168.111.111/api" data-post-data="{btn:'B',pc:1,lang:'jp'}"><img src="/img/jp/JP2.png" width="345px" alt="" id="title_2"></li>
9
- <li id="button_3" class="ajax_send" data-host-url="http://192.168.111.111/api" data-post-data="{btn:'A',pc:1,lang:'jp'}"><img src="/img/jp/JP3.png" width="345px" alt="" id="title_3"></li>
9
+ <li id="button_3" class="ajax_send" data-host-url="http://192.168.111.111/api" data-post-data="{btn:'C',pc:1,lang:'jp'}"><img src="/img/jp/JP3.png" width="345px" alt="" id="title_3"></li>
10
10
  </ul>
11
11
  ```
12
12
  ```JavaScript

2

ポイント追記

2017/11/20 10:05

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  私ならこう書きます。
2
+ ポイントはHTML要素側に宛先URLとポストしたいデータを書けば、li要素がどんなに増えてもJavaScriptのコードは増やさなくて済むことです。
2
3
 
3
4
  ```HTML
4
5
  <!-- 各ボタンにajax_sendというクラスを与えていることと、data-post-dataで送りたいパラメータを持たせているのがポイント -->

1

修正

2017/11/20 09:59

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -14,12 +14,12 @@
14
14
  .click(function() {
15
15
  var hostUrl = $(this).data('host-url'); // data-host-urlからURLを引き出す
16
16
  var jsonObject = JSON.parse($(this).data('post-data')); // data-post-dataから送信したいjsonを引き出す
17
- });
18
17
  $.ajax({
19
18
  url:hostUrl,
20
19
  type:'POST',
21
20
  dataType:'json',
22
21
  data:jsonObject
23
22
  });
23
+ });
24
24
  });
25
25
  ```