仕事の仮想学習環境で DataTables を使用しようとしています。
序章
前の質問で述べたように、私たちの VLE はNetvibes Universal Widget APIを使用します。これにより、VLE と (名前や時刻表などの VLE のユーザー アカウントから情報を取得するために) 通信できる JavaScript ファイルを記述でき、プロキシ経由でも通信できます。は、PHP ファイルとデータベースをホストする内部ネットワーク Web サーバーです。
Netvibes UWA AJAX 呼び出し
たとえば、次のコードを使用して PHP スクリプトにアクセスできます。
UWA.Data.getJson(List.URL + '?cmd=getObservations&filters=' + JSONdata, List.init);
2 つの単純なパラメーター - url、callback。
または、完全なData.request
呼び出しを使用できます。
UWA.Data.request(
BookReviewInput.URL,
{
method: 'post',
proxy: 'ajax',
type: 'json',
cache: 3600,
parameters: obj,
onComplete: BookReviewInput.process
}
これらのスクリプトは、内部ネットワーク URL のhttp://vle.curriculum.local
外部 URLを持つ VLE で記述されていますhttp://vle.ourschoolwebsite.com
。
の URL から、ローカルでのみアクセスできるスクリプトと通信しますhttp://php.curriculum.local
。
DataTables AJAX 呼び出し
私は現在、内部にあるスクリプトから情報をロードするために DataTables を取得しようとしています。ロードに多くの時間がかかる多くのデータがあるため、それをすべて完全に (つまり、ページネーションとすべて) 実行したいと考えています。満杯。
まず、Web サイトからいくつかのサンプル テーブルを手動でコピーして、DataTables が UWA 形式で動作することを確認しました。最小限の機能を備えた手動の HTML テーブルは正しく機能します。.dataTable()
次に、次のコードを書き込もうとしましたが、うまくいきません。
<head>
<script type="text/javascript">
//<![CDATA[
widget.onLoad = function(){
$('#example').dataTable( {
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "http://php.curriculum.local/cmd.php"
} );
}
//]]>
</script>
</head>
<body>
<div id="wrapper">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"> </table>
</div>
</body>
このスクリプトを実行すると表示されるコンソール エラーは、おそらく UWA ラッパーが原因で、非常に情報が少ないものです。
186642.js をクリックすると..
サーバー側の出力
http://pro.jsonlint.comで適切に検証したため、問題がサーバー側の出力にあるわけではないことはわかっています。
{
"sEcho": 0,
"iTotalRecords": "5",
"iTotalDisplayRecords": "5",
"aaData": [
[
"2012-10-24",
"35010",
"34966",
"10",
"43",
"2",
"2",
"2"
],
[
"2012-11-14",
"34956",
"35010",
"10",
"38",
"2",
"2",
"2"
],
[
"2012-11-09",
"90335",
"34972",
"11",
"28",
"2",
"1",
"1"
],
[
"2012-10-18",
"34961",
"34972",
"11",
"28",
"2",
"1",
"2"
],
[
"2012-10-19",
"34996",
"34972",
"11",
"28",
"2",
"2",
"2"
]
]
}
推定原因
私の比較的知られていない推測は、クロスドメインであるため、DataTables が私のスクリプトにアクセスできないということです。
問題は、これらのスクリプトを同じドメインに配置する方法がないことです。VLE 上の PHP にも MySQL にもアクセスできず、この組織の誰もアクセスできません。
考えられる解決策
答えは、DataTables 関数内で呼び出しを試して使用することだと思います。UWA.Data
これは script: にアクセスするために使用する UWA 呼び出しですが、UWA.Data.getJson('http://php.curriculum.local/cmd.php' + '?cmd=getObservations', fnCallback);
dataTables のページネーション変数などを送信する方法も必要になると思いますので、おそらく完全なUWA.Data.request
呼び出しを使用してparams
オブジェクトを送信する必要があります。
悲しいことに...
これが可能かどうかはまったくわかりません。それを行う方法は言うまでもありません。
誰でもガイダンスを提供できますか?
前もって感謝します、