I’m able to delete one entry at a time using AJAX. Now I’ve made the possibility to select entries using a checkbox and delete them all simultaneously, this works great without AJAX. Now I’m trying to delete multiple entries using AJAX. This is what I have so far:
the 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;
});
});`
the external deleting script:`
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']);`
and the result list with the delete button: `
<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>`
I think the AJAX script should pass the “$i” values as well, but I don’t know how to do this. Please tell me if the problem isn’t clear to you. Looking forward to your answer!
yout jquery would be somthing like this.
since the PHP function will get a JSON object. you will need to do a JSON decode to ge the array…. see JSON decode… use this array to create your query like..