私はこのコードを手に入れました:
function datatable_display(json) {
var order = "desc";
var len = $('.div_gui_tabledata').length;
len = len++;
var table = $('#dynamic_' + len);
document.write("<div class='div_gui_tabledata' id='dynamic_" + len + "' >");
this.array = JSON.stringify(json);
$.ajax({
type: "POST",
url: "../../api.php?p=datatable_sort",
data: "sortby=2&data=" + array,
dataType: "html",
success: function (data) {
$('#dynamic_' + len).html(data);
}
});
document.write("</div>");
$('#dynamic_' + len + ' .sortable').live("click", function () {
var index = $(this).index();
$.ajax({
type: "POST",
url: "../../api.php?p=datatable_sort",
data: "order=" + order + "&sortby=" + index + "&data=" + array,
dataType: "html",
success: function (data) {
$('#dynamic_' + len).html(data);
if (order == "desc")
order = "asc";
else
order = "desc";
}
});
});
}
この関数をPHPスクリプトから次のように呼び出します。
$json = json_encode($this->arr);
return "<script>datatable_display($json);</script></div>";
関数を2回以上呼び出すと、問題はjson-Object配列が常に最後の配列で上書きされることです。
JavascriptにOOPのようなものはありますか?または、各関数呼び出しを脅かす何かが一意ですか?divとSort-Linksの一意のIDを生成しますが、最新のJSONオブジェクトのみが使用されます。