2011-06-19 8 views
15

私はレジストリを検索するためのフォームを持っています。このフォームはjQuery Dialogの情報を表示し、ダイアログ内ではDatatablesを使用しています(はい、ダイアログ内にはテーブル全体があります)。私はTRとTDをPHPで動的に生成しています。そしてPHPはその文字列をHTMLに貼り付けます。 はしかし、ダイアログが表示されたとき、私はこのエラーを取得:"oColは未定義です" DatatablesとjQuery Uiダイアログを使用

oCol is undefined: oCol.fnSetData(oData, val);

私はFirefoxとChromeでそれをしようとしているが、それは同じことです。また、私はhttp://www.datatables.netを検索しました。私は「不正な形式の表」を破棄しました。私は何が間違っているのか分かりません。

この問題をお手伝いできますか?

これは私のJSブロックです:

 <script type="text/javascript" language="javascript" src="lib/jQuery/jquery-1.6.1.js"></script> 
     <script type="text/javascript" language="javascript" src="lib/jQuery Ui/js/jquery-ui-1.8.13.custom.min.js"></script> 
     <script type="text/javascript" language="javascript" src="lib/Datatables/DataTables-1.8.0/media/js/jquery.dataTables.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
       $("#results").dialog({ 
        title: "Results", 
        width: 900, 
        height: 500, 
        open: function(event, ui){ 
         $("#tRes").dataTable({ 
          "bPaginate": true, 
          "bLengthChange": true, 
          "bFilter": true, 
          "bSort": true, 
          "bInfo": true, 
          "bAutoWidth": true 
         }); 
        } 
       }); 
      }); 
     </script> 

これは(PHPスニペットを使って)私の表です:事前に

<div id="results"> 
    <table id="tRes"> 
     <thead> 
      <tr> 
       <th>ID</th> 
       <th>Name</th> 
       <th>State</th> 
       <th>Address</th> 
      </tr> 
     </thead> 
     <tbody> 
      <?php 
       echo $rows; 
      ?> 
     </tbody> 
    </table> 
</div> 

感謝。 、これはまだ動作しない場合は

    $("#tRes").dataTable({ 
         "bPaginate": true, 
         "bLengthChange": true, 
         "bFilter": true, 
         "bSort": true, 
         "bInfo": true, 
         "bAutoWidth": true, 
        "aoColumns": [ 
             null, 
             null //put as many null values as your columns 

        ] 
        }); 

あなたも生成されたHTMLを投稿してくださいすることができます

答えて

8

は、あなたが設定にこのようなあなたの列を試してみましたか? もう1つのことは、ダイアログを開くときだけでなく、document.ready上のテーブルを初期化することですが、ここでは問題ではないと思います。

+0

はい、あなたは正しいです。これは問題を解決しました。ありがとうございます(2か月後) –

+10

なぜこれが必要ですか? –

+2

これは、行のセルより多くの見出しがある場合、またはその逆の場合は、正しい解決策はthugsbの解決策です。それは手で問題を解決するかもしれませんが、それは亀裂をペーピングしています。 – Martin

20

テーブルが正しく構成されていない可能性があります。 theadとtbodyを持っていることを確認してください。私はこのエラーを抱えていました。そして私がtheadとtbodyを追加すると、それはなくなってしまいました。私の設定は、他の回答の設定と同じようなものではありませんでした。

table 
    thead 
    tr 
     th`s 
    tbody 
    tr`s 
     td`s 
+5

これです。私は体に列を追加したが、それを追加することができなかったので、これに遭遇しました。 – DGM

+0

です! http://datatables.net/forums/discussion/7488/ocolumn-is-undefined/p1 – gavenkoa

+0

@DGMあなたはそれを釘付けにしました! –

0

$( "#のTRES")のdataTable({ "bPaginate":真、 "bLengthChange":真、 "bFilter":真、 "bSort":真、 "bInfo" :true、 "bAutoWidth":true、 });

あなたのページからこのコードを削除し、テキストボックスの値を設定する構文をチェックすると、正常に動作します。

2

jQueryのプラグインが<tbody>タグ内の要素の数は、あなたのテーブルの<thead>タグに<th>要素の数と一致している必要がのDataTable。

+0

ありがとう、+1、それも私を助けた。 – Abhishek

関連する問題