2011-12-03 15 views
0

ajaxリクエストが完了し、応答が成功したときにjquery関数を初期化します。 AJAXの応答としてテーブルを取得し、それを整理しようとしていますので用のデータテーブルjQueryプラグインを使用してグリッドがajaxリクエストの成功時にjquery関数を初期化するにはどうすればよいですか?

をgirdsとしての機能は、Ajaxの成功にトリガされますこのよう

$(document).ready(function() { 
$('#data_grid').dataTable(); 
    }); 

機能を初期化AJAX応答の成功に応答

function showgValid() 
{ 
    if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") 
    {document.getElementById('loadingImg').style.display='none'; 
    data =xmlHttp.responseText; 

    document.getElementById("genPay").innerHTML=data; 

    } 
} 

は、innerHTMLプロパティgenPayのdiv要素がresponsetextなり、 応答テキストは、ID data_tableとテーブルになります。

AJAXリクエストが送信され、以下のファイルから得たことになります。

<? 

require_once '../config.php'; 

$db = $_GET['db']; 

$table = $_GET['table']; 

$_SESSION['table']=$table; 

?> 
<html> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <style type="text/css" title="currentStyle"> 
      @import "demo_page.css"; 
      @import "demo_table.css"; 
     </style> 

     <script type="text/javascript" language="javascript" src="jquery.js"></script> 
     <script type="text/javascript" language="javascript" src="jquery.dataTables.js"></script> 
     <script language ="javascript" src="js/abtAjax.js" type="text/javascript"></script> 
     <script type="text/javascript" src="js/ajax.js"></script> 
     <script type="text/javascript" charset="utf-8"> 
      $(document).ready(function() { 
       $('#data_grid').dataTable(); 
      }); 



     </script> 
    </head> 
    <body id="dt_example"> 
     <div id="container"> 






<table cellpadding="0" cellspacing="0" border="0" class="display" id="data_grid"> 

    <thead><? 
    if ($line == 0) 
    { 

?> 
<tr> 
    <?php 
    $sql=mysql_query("show columns from $table"); 
    while($res = mysql_fetch_row($sql)) 
    { 
    echo "<th bgcolor='".(($line % 2) ==0 ? '#efefef' : '#ffffff' )."'>$res[0]</td>"; 

    } 
    ?> 
</tr> 
<? 
} 
$line++; 
?> 
</thead> 
    <tbody> 
     <?php 
$result = mysql_query("select * from $table"); 
$num_rows = mysql_num_rows($result); 

while ($get_info = mysql_fetch_object($result)){ 
print "<tr>"; 
foreach ($get_info as $field) 
print "<td>$field</td>"; 
print "</tr>"; 
} 

?> 
    </tbody> 
<? 
print "</table>"; 
?> 


      <div class="spacer"></div> 






     </div> 
    </body> 
</html> 

問題が期待グリッド午前を取得しておりませんということです。私は関数がajaxリクエストの成功に初期化されていないと思います。この問題を取り除くために私を修正してください。

答えて

3

$(document).ready()はあなたのajaxコールの後に起動しません。ページが最初にロードされるときにのみ起動します。 $('#data_grid').dataTable();をajax呼び出しの後に呼び出したい場合は、ajax呼び出しの成功ハンドラから呼び出します。

function showgValid() 
{ 
    if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") 
    { 
     document.getElementById('loadingImg').style.display='none'; 
     data =xmlHttp.responseText; 

     document.getElementById("genPay").innerHTML=data; 

     // ADD THIS LINE to your ajax success handler 
     $('#data_grid').dataTable(); 
    } 
} 
+0

私はこれをしようとします:) –

+0

それはたくさんの感謝:) jfriendを働きました..! –

1

私は、これはあなたが探しているものであると信じて:

$.ajax({ 
    url: "test.html", 
    context: document.body, 
    success: function(){ 
    $(this).addClass("done"); 
    } 
}); 

jQuery API refference

関連する問題