こんにちは、選択したボタンが変更されたときに ajax 呼び出しをトリガーするボタン グループがあります。
<div class="btn-group" id="graphSelection">
<button type="button" class="btn disabled btn-info" id="post" onclick="graphSelection(this.id)">Posts</button>
<button type="button" class="btn" id="comment" onclick="graphSelection(this.id)">Comments</button>
<button type="button" class="btn" id="interaction" onclick="graphSelection(this.id)">All Interaction</button>
</div>
そして、javascript/jquery と ajax
var postData;
var commentData;
var interactionData;
function graphSelection(clickedID) {
if(!$('#' + clickedID).hasClass('disabled')) {
$('#graphSelection').find('button.disabled').removeClass('disabled btn-info');
$('#' + clickedID).addClass('disabled btn-info');
loadGraphs(clickedID);
}
}
この最初の JavaScript は、個々のボタンの CSS を変更するだけで、ajax を含む次の JavaScript 関数で負荷グラフを呼び出します。
function loadGraphs(type) {
if ((type == "post" && !postData) || (type == "comment" && !commentData) || (type == "interaction" && !interactionData)) {
$.ajax({
url : 'parts/' + type + '_graph.php',
cache: false,
type : 'POST',
data : data,
dataType : 'json',
beforeSend: function() {
$("#report-loading").fadeIn(500);
},
success : function (jsonData) {
alert(type);
if (type == "post")
postData = jsonData;
else if (type == "comment")
commentData = jsonData;
else if (type == "interaction")
interactionData = jsonData;
drawChart(jsonData);
$("#report-loading").fadeOut(500);
},
error : function () {
$("#report-loading").fadeOut(500);
alert("error");
}
})
}
else if (type == "post") {
drawChart(postData);
}
else if (type == "comment") {
drawChart(commentData);
}
else if (type == "interaction") {
drawChart(interactionData);
}
}
この例では、ロードするグラフのタイプを確認し、以前にデータをロードしたことがあるかどうかを確認します。そうでない場合は、ajax がトリガーされ、必要なデータが取得されます。ページの読み込みが完了すると、ajax は投稿のタイプで一度自動的に呼び出されますが、ボタン グループのボタンを使用すると loadGraphs 関数に到達しますが、ajax は「スキップ」されているようです。
どんな助けでも大いに感謝します。
1 var postData を更新します。var コメントデータ; var インタラクションデータ;
他の JavaScript 関数と同じスクリプト タグ内の上部に定義されています。