创建一个简单的cms,我有以下
<input type="submit" value="delete" title="Delete Aricle(s)" id="delete_btn" onclick="delete_confirm()" />
<tbody>
<?php foreach ($articles as $article): ?>
<tr>
<td align="center">
<input id="article_id"name="article[]" type="checkbox" value="<?php echo $article->id; ?>" /></td>
<td align="center"><?php echo anchor('admin/articles/edit/'.$article->id,$article->title); ?></td>
<td align="center"><?php echo $article->author; ?></td>
<td align="center"><?php echo $article->category; ?></td>
<td align="center"><?php published($article->post_status); ?></td>
<td align="center"><?php featured($article->featured); ?></td>
<td align="center"><?php echo $article->views; ?></td>
<td align="center"><?php echo $article->post_date; ?></td>
</tr>
<?php endforeach;?>
</tbody>
以上代码包含在表单标记
中这是我的javascript代码
function delete_confirm() {
var msg = confirm('Are you sure you want to delete the selected article(s)');
if(msg == false) {
return false;
}
}
这是我控制器中的删除功能
function articles_delete() {
//Load Model
$this->load->model("article_model");
//Assign article id to variable
$checkbox = $_POST['article'];
//loop through selected checkbox
for($i = 0; $i < count($checkbox); $i++) {
//Call delete method of the article model
$this->article_model->delete($checkbox[$i]);
}
$this->session->set_flashdata("message","Article(s) Deleted");
redirect("admin/articles","refresh");
}
但是当在确认对话框中单击取消时,表单仍然仍然被提交并且所选文章被删除。 请告知如何做什么
答案 0 :(得分:6)
尝试更改
<input type="submit" value="delete" title="Delete Aricle(s)" id="delete_btn" onclick="delete_confirm()" />
到
<input type="submit" value="delete" title="Delete Aricle(s)" id="delete_btn" onclick="return delete_confirm();" />
您正在onclick函数中运行delete_confirm()函数。你需要从onclick()函数本身返回false。
答案 1 :(得分:2)
尝试onSubmit
而不是onClick
。
答案 2 :(得分:2)
你想要做的是这样的事情:
<form onsubmit="return delete_confirm();" ...>
<input ...>
</form>
通过type="submit"
- 按钮提交表单时,会调用delete_confirm()
- 函数。如果它返回true
,则提交表单。如果它返回false
,则不是。
答案 3 :(得分:2)
尝试使用AJAX从Javascript中调用PHP脚本。
这意味着将输入按钮类型设置为按钮<input type="button" />
并更改onclick,如果按下取消,返回false(就像你所做的那样)或按下OK,运行AJAX脚本并重定向页面如果需要......
您可以在单独的文件中编写AJAX服务器端(PHP)脚本,并使用$ _GET发送参数。
答案 4 :(得分:0)
delete_confirm()
必须始终返回false
。
答案 5 :(得分:0)
您希望删除确认功能是表单的onsubmit
属性。将它放在输入元素上是不够的。
答案 6 :(得分:0)
也许尝试使用:
<a href="javascript: if(confirm('Relly?')) { document.getElementById('your_form').action='php.php'; document.getElementById('your_form').submit(); } ">Delete</a>