2

私は 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 番目のテーブルに渡す方法です。

4

1 に答える 1

1

次のようにリンクにIDを追加する必要があることがわかりましたsAjaxSource

"sAjaxSource": t2Source+"?id="+id

そして、私のコントローラーで$_GETはなく使用します。$_POST

于 2013-09-02T10:54:44.053 に答える