私は CodeIgniter を使用し、2 つの dataTables を持っています (2 つの別々のビューで、同じ js、モデル、およびコントローラー ファイル)。
最初のテーブルに SELECT クエリを入力すると、正常に機能します。
私の問題は、2番目のテーブルを埋めるために最初のテーブルから(クリックして行を選択して)データ(クエリ用)が必要なことです。私はまだそれを機能させることができませんでした。必要な SELECT クエリを phpMyAdmin で既に実行しましたが、動作します。
コントローラーファイル
function refreshT2(){
$id = $_POST['id'];
$id = stripslashes($id);
$id = mysql_real_escape_string($id);
$this->load->model('model');
$data=$this->model->getAllById($id);
echo json_encode($data);
}
jsファイル
$(document).ready( function () {
$("#table1").addClass("started");
$("#table2").addClass("started");
var t1Source = "controller/refreshT1";
var t2Source = "controller/refreshT2";
var oTablet1=$('#table1').dataTable({
"sScrollX": "100%",
"sPaginationType":"full_numbers",
"bJQueryUI":true,
"sDom": 'R<"H"lfr>t<"F"ip>',
"bDeferRender": true,
"bProcessing": true,
"bServerSide": true,
"aaSorting": [[ 0, "desc" ]],
"sAjaxSource": ft1Source
});
$("#table1 tbody").click(function(event) {
var iPos=oTablet1.fnGetPosition(event.target.parentNode);
var aData=oTablet1.fnGetData(iPos);
var id=aData[2];
$('input[name=id]').val(id);
/* When I click on the first dataTable the field 'id' is filled properly */
var oTableft2 = $('#table2').dataTable({
"sScrollX": "100%",
"sPaginationType":"full_numbers",
"bJQueryUI":true,
"sDom": 'R<"H"lfr>t<"F"ip>',
"bDeferRender": true,
"bProcessing": true,
"bRetrieve": true,
"bDestroy": true,
"bServerSide": true,
"aaSorting": [[ 0, "desc" ]],
"sAjaxSource": t2Source
});
} );
}
詳細情報/コードを提供する必要がある場合は、教えてください。
お時間をいただきありがとうございます。
編集:$id = $_POST['id'];
実際の値で切り替えると機能します。このデータを取得するにはどうすればよいですか?
「ボタン+アクション」ソリューションを使用したくありません。js 内で動作する場合は、送受信メソッドは必要ありません。必要なのは、パラメーターを 2 番目のテーブルに渡す方法です。