2012-01-23 51 views
3

我可以使用AJAX一次删除一个条目。现在我可以使用复选框选择条目并同时删除它们,但这种方式在没有AJAX的情况下效果很好。现在我试图使用AJAX删除多个条目。这是我到目前为止有:使用AJAX删除多个条目

阿贾克斯:

`$(function() { 
$(".checkbox_button_del").click(function() { 
var id = $(this).attr("id"); 
var dataString = 'id='+ id ; 
var parent = $(this).parents('tr:first'); 

         var notice = '<div class="notice">' 
            + '<div class="notice-body">' 
             + '<img src="core/displays/notify/delete-icon.png" alt="" />' 
             + '<h3>Deleted item</h3>' 
             + '<p>The item has been succesfully deleted.</p>' 
            + '</div>' 
            + '<div class="notice-bottom">' 
            + '</div>' 
           + '</div>'; 

         $ny(notice).purr(
          { 
           usingTransparentPNG: true 
          } 
         ); 
$.ajax({ 
type: "POST", 
url: "core/actions/delete_multiple.php", 
data: dataString, 
cache: false, 

success: function() 
{ 
parent.fadeOut('300', function() {$(this).remove();}); 
    $("#load_tasklist").load("core/statistics/stats_brackets.php") 
    $("#load_tweets").load("response.php") 
    $("#load_mod_day_summary").load("core/displays/mod_day_summary.php") 
    $("#load_mod_task_selector").load("core/displays/mod_task_selector.php") 
} 
}); 

return false; 
}); 
});` 

外部删除脚本:`

include('../../core/additional/connect-db.php'); 

    for($i=0;$i<count($_POST["chkDel"]);$i++) 
    { 
     if($_POST["chkDel"][$i] != "") 
     { 
      $strSQL = "DELETE FROM players "; 
      $strSQL .="WHERE id = '".$_POST["chkDel"][$i]."' "; 
      $objQuery = mysql_query($strSQL); 
     } 
    } 



    header('Location: ' . $_SERVER['HTTP_REFERER']);` 

与删除按钮的结果列表:`

<form name="frmMain" id="myForm" method="post" OnSubmit="return onDelete();"> 


<?php 

$connection = mysql_connect($server, $user, $pass) or die ("Could not connect to server ... \n" . mysql_error()); 
mysql_select_db($db) or die ("Could not connect to database ... \n" . mysql_error()); 

    $result = mysql_query("SELECT * FROM players WHERE (userid = '$username' AND done = '0' AND measure = 'task' AND day = '$user_mydate') ORDER BY id DESC") 
        or die(mysql_error()); 

    echo '<div id="checkbox_button_div"> 
    <input class="checkbox_button_del" type="submit" id="buttondel" value="Delete" /> 
    <input class="checkbox_button_done" type="submit" id="buttondone" value="Done" /> 
    <input class="checkbox_button_done" type="submit" id="buttonfavorite" value="Favorite" /> 
    <input class="checkbox_button_done" type="submit" id="buttonmove" value="+1 day" /> 
    </div>'; 

    echo ' 

      <table id="tableOne" cellpadding="0" cellspacing="0" width="760" border="0" class="yui">  
     <thead> 

      <tr>          

       <th><a href="#" title="Click Header to Sort">Task</a></th> 

       <th><a href="#" title="Click Header to Sort">Minutes</a></th> 
       <th><a href="#" title="Click Header to Sort">Time</a></th> 

       <th><a href="#" title="Click Header to Sort">Category</a></th> 
       <th> <input type="checkbox" class="check" value="check all" /></th> 

      </tr> 

     </thead> 
    <tbody> ';  

     $i = 0; 
     while($row = mysql_fetch_array($result)) { 
     $i++; 
      include ('core/additional/params_tasks.php'); 

      echo ' 

      <tr class="handcursor" onmouseover="' .($mouseover). '" onmouseout="' .($mouseout). '">   

       <td class="editable" id="' .($id). '" width="180">' .($task). ' </td> 
       <td class="editable" id="' .($id). '">' .($minutes). '</td> 
       <td onClick="' .($onclick). '">' .($hours_start). '.' .($minutes_start). ' - ' .($hours_due2). '.' .($minutes_due2). ' </td> 
       <td onClick="' .($onclick). '">' .($categorie). ' </td>   
       <td align="center"><input type="checkbox" class="cb-element" name="chkDel[]" id="chkDel<?=$i;?>" value="' .($id). '"></td> 

      </tr> '; 

      } 
      // close table> 
      echo '</tbody> 
     <tfoot> 
       <tr style="display:none;"> 
       <td style="border: 0px;" colspan="4"> 
        No matching results.. 
       </td> 
      </tr>   
     </tfoot> 
    </table> 

     '; 

    ?> 

    <input type="hidden" name="hdnCount" value="<?=$i;?>"> 

    </form>` 

我认为AJAX脚本也应该通过“$ i”值,但我不知道如何做到这一点。请告诉我,如果问题不清楚给你。期待您的回答!

+0

不萤火虫给你任何错误? –

+0

问题不清楚,问题是什么? –

+0

你好,AJAX正在执行(并给出一个成功的消息),但没有被删除。我的问题是:我应该如何修改AJAX脚本,以便传递正确的表单信息?谢谢:) –

回答

0

yout jquery会是这样的东西。

$("#Submit1").click(function() { 

      var arr = new Array(); 


      $("input:checked").each(function() { 

       arr.push($(this).attr("id")); 

      }); //each 

      $.ajax({ 
      type: "POST", 
     url: "core/actions/delete_multiple.php", 
     data: arr ,//pass the array to the ajax call 
     cache: false, 

     success: function() 
      { } 
     });//ajax 

      }); //each 


     }); //click 

因为PHP函数会得到一个JSON对象。你需要做一个JSON解码到GE的阵列....看到JSON decode ......使用这个数组来创建查询如..

delete from SalesLT.Customer 
where CustomerID in (1,2,3,4); 
+0

谢谢你,先生!现在去试试:) –

+0

任何运气..?? :) –

+0

无法得到它的工作:(需要一些帮助与JSON(实际页面离线btw)你可以为我重写delete_multiple.php文件?(仅当它花费你几分钟!)在此先感谢 –