我很难创建多个复选框ajax delete。我是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(使用implode)
$deleteid = implode(",",$_POST['checkall']);
$fname = mysql_escape_string($_POST['firstname']);
$sql = "DELETE from `bpo`.`users` (`uid` ,`fname`)
WHERE UID IN (".$deleteid.")";
我的数据不会去delete.php。 idk为什么。当我按下删除按钮并自动反映到我的数据库时,我需要有关删除已检查行的帮助。更改必须出现在屏幕上而不刷新(AJAX)和使用implode。谢谢。
答案 0 :(得分:1)
在表单中将name="checkall"
更改为name="checkall[]"
以允许多个值。
请注意,如果未选中任何选项,$_POST['checkall']
将被取消定义,这将生成Undefined index
通知。使用isset
或array_key_exists
。
如果$deleteid
为空(例如array()
),则查询将会格式错误,即
DELETE from `bpo`.`users` (`uid` ,`fname`) WHERE UID IN ()
// unexpected ) -- ^
这会给你一个SQL错误。 IN
子句可能不是空的。