Подтверждение удаления Javascript
Я создаю простую 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");
}
но при нажатии кнопки "Отмена" в диалоговом окне "подтвердить" форма все еще отправляется и выбранная статья удаляется. Пожалуйста, советы о том, что делать
7 ответов
попробуйте изменить
<input type="submit" value="delete" title="Delete Aricle(s)" id="delete_btn" onclick="delete_confirm()" />
to
<input type="submit" value="delete" title="Delete Aricle(s)" id="delete_btn" onclick="return delete_confirm();" />
вы запускаете функцию delete_confirm () внутри функции onclick. вам нужно вернуть false из самой функции onclick ().
что вы хотите сделать, это что-то вроде этого:
<form onsubmit="return delete_confirm();" ...>
<input ...>
</form>
когда форма представляется через type="submit"
кнопка, ваш delete_confirm()
-функция вызывается. Если он вернется true
, бланк представленного. Если он вернется false
, это не так.
попробуйте использовать AJAX для вызова PHP-скрипта из Javascript.
это означает, что Установите тип кнопки ввода в button <input type="button" />
и изменить onclick таким образом, что если отмена нажата, верните false (например, что вы сделали) или если OK нажата, запустите сценарий AJAX и перенаправьте страницу, если это необходимо...
вы можете написать сценарий AJAX server-side (PHP) в отдельном файле и отправить параметры, используя $_GET.
вы хотите, чтобы функция подтверждения удаления была вашей onsubmit
атрибут формы. Наличие его на входном элементе недостаточно.
возможно, попробуйте использовать:
<a href="javascript: if(confirm('Relly?')) { document.getElementById('your_form').action='php.php'; document.getElementById('your_form').submit(); } ">Delete</a>