目次 |
---|
・jQueryの非同期通信($.ajax) ・ソース |
$.ajax({ type:リクエストタイプ, GET/POST url:送信先ファイルパス, 具体的なファイル名 data:送信する引数, 省略可能 contentType:コンテントタイプ, application/json dataType:受信データ形式, json/xml/text/html/script success:成功時、実行される関数, error:失敗時、実行される関数 })
$(function(){ $.ajax({ type:"get", url:"sample.json", dataType:"json", contentType:"application/json", success:successFnc, error:errorFnc }); }); });
var successFnc = function(param){ var content = $("div#content"); for(var i = 0;i < param.length;i++){ content.append('<span>' + param[i].date + '</span><br>'); content.append('<span>' + param[i].title + '</span><br>'); content.append('<span>' + param[i].category + '</span><br>'); content.append('<span>' + param[i].comment + '</span><br>'); } };
var errorFnc = function(req,status,thrown){ var content = $("div#content"); content.text(status); };
[ { "date": "2013.09.30", "title": "社長からのメッセージ", "category": "社長", "comment": "体調管理に気をつけてください" }, { "date": "2013.10.01", "title": "勤怠未承認", "category": "勤怠", "comment": "先月の勤怠が~~~" } ]
<div id="loadarea"></div> <div id="content"></div>
<script type="text/javascript"> $(function(){ var thisArea = $('#loadarea'); thisArea.after('<button id="btn">ボタン</button>'); var thisBtn = thisArea.next('#btn'); thisBtn.click(function(){ $.ajax({ type:"get", url:"sample.json", dataType:"json", contentType:"application/json", success:successFnc, error:errorFnc }); }); <!-- 成功時実行される関数 --> var successFnc = function(param){ var content = $("div#content"); for(var i = 0;i < param.length;i++){ content.append('<span>' + param[i].date + '</span><br>'); content.append('<span>' + param[i].title + '</span><br>'); content.append('<span>' + param[i].category + '</span><br>'); content.append('<span>' + param[i].comment + '</span><br>'); } }; <!-- 失敗時実行される関数 --> var errorFnc = function(req,status,thrown){ $("span").text(status + "e"); }; }); </script>