0

phtmlを使用してphpでテーブルのページネーションを行っています。問題は、行の色を変更するjavascriptがあることです。これは、最初のページでのみ機能し、他のページでは機能しません。

foreach($this->paginator as $record)
       {echo "<td width='61'> <a href='#' class='test'  data-id='" . $record['id']. "'>". $record['id'] . "</td>";
       echo "<td width='61'  >". $record['firstname'] . "</td>";
       echo "<td width='61'>" . $record['emailid'] . "</a></td>";
       echo "<td width='38'>" . $record['customdata'] . "</td>";
}

Javascriptは

function approve(id) {

   var id =id;  
   $.ajax({
       url: 'http://localhost/feedback/public/index/approve/',
       type: 'POST',                    
       data:"id="+id,
       success:function(data) {
                 alert('Approved successfully');
                     var index =parseFloat(id)+1;                                    
                    $('table tr:eq('+index+')').css("background-color", "54FF9F");//this           works only for first page
                    }
           })   
    }  

ポップアップウィンドウのボタンをクリックしてjavascriptを呼び出しています。他のページでは機能しないので、誰か助けてくれませんか。

4

1 に答える 1

0

あなたのsuccess機能は、行を着色するものです。trタグ自体にインラインスタイルを追加します。テーブルの次のページに移動しても、この関数は(おそらく)再度実行されないため、新しくレンダリングされた行は色付けされません。

代わりに、行にクラスを追加し、スタイルシートにCSSルールを追加することをお勧めします。

$('table tr:eq('+index+')').addClass('alt-row');

CSS:

.alt-row td { background-color: #54FF9F; }

また、安全にプレイするために、一部の古いブラウザはテーブル行の背景をサポートしていないため、行ではなくセルに背景色を適用します。

于 2012-08-13T14:33:35.677 に答える