這個自己寫了一部分,也借鑑了下別人的,功能有很多不足(有時間我會繼續改進),如果有心人路過看到還望能留言解決下,謝了(在底部我會列出來)。
HTML頁面:
關鍵的兩個標籤
<a class="btn btn-xs btm-input btn-purple" onclick="deleteCheckBox()" id="sc" style="width: 60px" href="javascript:void(0);">
刪除
</a>
...
<td class=""><input type="checkbox" name="sqdh[]" value="{$mx.sqdh}" ></td>
<td class="">{$mx.xxbbh}</td>
Javascript部分
<script>
function deleteCheckBox() {
//彈出提示,是否確定刪除
if (confirm("確定要刪除嗎?")) {
//將所有複選框的默認值放入數組中
var check = document.getElementsByName('sqdh[]');
var sqdh = new Array();
//將所有選中複選框的默認值寫入到數組中
for (var i = 0; i < check.length; i++) {
if (check[i].checked)
sqdh.push(check[i].value);
}
//ajax開始運行
$.ajax({
url: "{:U('hzzfsc')}",
type: "post",
dataType: "json",
data: {sqdh: sqdh},
success: function (msg) {
//ajax成功返回數據要執行的代碼
location.reload(true);
}
});
}
}
</script>
PHP部分
public function hzzfsc() { //接收ajax傳過來的值 $sqdh = I('post.sqdh'); //判斷傳過來的數組是否有值 if (!empty($sqdh)) { //循環刪除傳過來的所有對應的消息 foreach ($sqdh as $v) { $condition['sqdh'] = $v; //刪除該對應的數據 $result_temp1 = M('主表名稱')->where($condition)->delete(); $result_temp2 = M('子表名稱')->where($condition)->delete(); } if ($result_temp1 !== false && $result_temp2 !== false) { $this->success(); } else { $this->error(); } } }不足之處:
1.是否確定要刪除那兒需要優化,如果不進行選擇,點擊刪除按鈕時也會彈出“確定要刪除嗎”信息,如果在沒選擇的情況下應該彈出“請選擇要刪除項”會更妥一些;
2.雖然使用了ajax但是頁面在形式上還是刷新的,大概是用了代碼中用了 location.reload(true);如果不用的話再點擊刪除按鈕後刪除項還在(但是數據庫裏面沒有了),刷新一次頁面後纔會消失;
3.後臺PHP代碼走到success時,如果填入提示成功信息,則刪除後不會提示該成功信息。
好了,就這些啦,以後會慢慢改進的!