0

I am having a hard time on creating a multiple checkbox ajax delete. I am an ajax noob.

    $sql = 'SELECT * FROM users';
$qry = mysql_query($sql);
$html = '';
$html .='<center>';
$html .= '<a href="" id="a-add">+ Add New User</a>';
$html .= ' || <a href="" id="a-delete"> Delete User</a>';
$html .= '<div id="div-data">';
$html .= '<table border="1" width="300px">';
$html .= '<tr>';    
$html .= '<th width="5px"><input type="checkbox" id="cb-checkall"></th>';   //all
$html .= '<th> Users</th>';         
//$html .= '<th>Delete</th>';
while($row = mysql_fetch_array($qry)) {
    $html .= '<tr align="center">';     
    $html .= '<td><input type="checkbox" name="checkall" class="checkall" value="'.$row['uid'].'"/></td>';   
    $html .= '<td>'.$row['fname'].'</td>';
    $html .= '</tr>';           
}
$html .= '</table>';
$html .= '</div>';
echo $html;

delete.php (with the use of implode)

    $deleteid = implode(",",$_POST['checkall']);
$fname = mysql_escape_string($_POST['firstname']);
$sql = "DELETE from  `bpo`.`users` (`uid` ,`fname`)
        WHERE UID IN (".$deleteid.")";

My data doesnt go to delete.php. idk why. I need help on deleting the checked rows when I push delete button and automatically reflects to my database. The change have to appear on screen without refreshing (AJAX) and with the use of implode. Thank you.

1
  • You cant have multiple checkboxes with the same name Commented Apr 25, 2014 at 12:00

1 Answer 1

1

In your form change name="checkall" to name="checkall[]" to allow for multiple values.


Keep in mind that if no options are checked $_POST['checkall'] will be undefined which will generate an Undefined index notice. Use isset or array_key_exists.

If $deleteid is empty (like array()) you query will be malformed, ie.

DELETE from  `bpo`.`users` (`uid` ,`fname`) WHERE UID IN ()
                                       // unexpected ) -- ^

This will give you an SQL error. IN clause may not be empty.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.