0

データテーブル(サーバーサイド処理ではない)があり、各行に1つは承認、もう1つは拒否の2つのリンクがあります。いずれかのリンクをクリックすると、データベースが変更されます。これは正常に機能しています。いずれかのリンクをクリックした後、次を使用して行を削除します。

parent.animate({'backgroundColor':'#fb6c6c'},300); 
parent.slideUp(300,function() {});`

問題は、承認ボタンがクリックされた場合、データテーブルのdays_leftが計算によって変更されますが(これは正常に機能します)、ajaxが成功したときに再描画する必要があります。

したがって、プロセスは[承認]リンクをクリックし、days_leftを計算し、新しい日数の列でテーブルを更新します。

どんな助けでも素晴らしいでしょう私はしばらくの間これに固執しました。

ここに画像の説明を入力してください

$('a.deny').click(function(e) {
    e.preventDefault();
    var parent = $(this).closest("tr");
    $.ajax({
      type: 'get',
      url: 'index.php',
      data: 'ajax=1&deny=' + parent.attr('id').replace('record-',''),
      beforeSend: function() {
        parent.animate({'backgroundColor':'#fb6c6c'},300);
      },
      success: function() {
        parent.slideUp(300,function() {});      
    }
    });
  });


$('a.approve').click(function(e) {
    e.preventDefault();
    var parent = $(this).closest("tr");
    $.ajax({
      type: 'get',
      url: 'index.php',
      data: 'ajax=1&approve='+ parent.attr('id').replace('record-','')+'&employee='+ parent.attr('title')+'&acyear=' + parent.attr('lang'),
      beforeSend: function() {
        parent.animate({'backgroundColor':'#fb6c6c'},300);
      },
      success: function() {
        parent.slideUp(300,function() {});
        var $adwpTable = $("#department_waiting_approval_table_a").dataTable( { bRetrieve : true } );
        $adwpTable.fnDraw();                
        }
    });
  });

編集-詳細情報を追加

if(isset($_GET['approve']) && isset($_GET['employee']) && isset($_GET['acyear'])) {
  $result = mysql_query('UPDATE requests SET approved = 1 WHERE id = '.$_GET['approve'].'');
  $result2 = mysql_query('UPDATE holiday_entitlement_business_manual 
          SET days_left = new_entitlement- IFNULL((SELECT sum(days) 
          FROM requests where user='.$_GET['employee'].' AND academic_year='.$_GET['acyear'].' AND approved=1),0) 
          WHERE userid='.$_GET['employee'].' AND academic_year='.$_GET['acyear'].'');
}


if(isset($_GET['deny'])) {
  $result = mysql_query('UPDATE requests SET denied = 1 WHERE id = '.$_GET['deny'].'');
}
4

1 に答える 1

1

成功関数でデータパラメータを指定するだけです

$('a.deny').click(function(e) {
e.preventDefault();
var parent = $(this).closest("tr");
$.ajax({
  type: 'get',
  url: 'index.php',
  data: 'ajax=1&deny=' + parent.attr('id').replace('record-',''),
  beforeSend: function() {
    parent.animate({'backgroundColor':'#fb6c6c'},300);
  },
  success: function(data) {
    parent.slideUp(300,function() {});  
    parent.children('.days_left').html(data);
}
});

});

次に、呼び出すスクリプトは残りの日数を返す必要があります。

于 2012-08-29T09:09:41.080 に答える