ОК, поэтому давайте предположим следующее (простите за повторное разъяснение вопроса):
У вас есть ряд строк некоторой формы со ссылками на удаление, и вы хотите подтвердить, что пользователь действительно хочет удалить его?
Давайте предположим следующий HTML-код:
<tr>
<td>Some Item 1</td>
<td><a href="?mode=delete&id=1" class="delete-link">Delete</a></td>
</tr>
<tr>
<td>Some Item 2</td>
<td><a href="?mode=delete&id=2" class="delete-link">Delete</a></td>
</tr>
<tr>
<td>Some Item 3</td>
<td><a href="?mode=delete&id=3" class="delete-link">Delete</a></td>
</tr>
Итак, я предполагаю, что тот же PHP-скрипт может запустить удаление, взяв параметр mode:
<?php
if($_GET['mode'] == 'delete') {
//Check if there is something in $_GET['id'].
if($_GET['id']) {
//Prevent SQL injection, just to be safe.
$query = "DELETE FROM sometable WHERE id='" . mysql_real_escape_string($_GET['id']) . "'";
mysql_query($query);
}
}
Я собираюсь дать два решения для этого на стороне JavaScript - первое с встроенным, немного уродливым решением, второе с использованием jQuery (http://jquery.com/), и ненавязчивый JavaScript.
Хорошо, для начала я бы связал событие onclick каждой ссылки.
<tr>
<td>Some Item 3</td>
<td><a href="?mode=delete&id=3" class="delete-link" onclick="checkDeleteItem();">Delete</a></td>
</tr>
Затем создайте функцию JavaScript:
//This will get called when the link is clicked.
function checkDeleteItem() {
//show the confirmation box
return confirm('Are you sure you want to delete this?');
}
Как я уже сказал, мне не нравится это решение, потому что оно ужасно навязчивое, а также не особенно надежное.
Теперь решение jQuery:
//Do all this when the DOM is loaded
$(function() {
//get all delete links (Note the class I gave them in the HTML)
$("a.delete-link").click(function() {
//Basically, if confirm is true (OK button is pressed), then
//the click event is permitted to continue, and the link will
//be followed - however, if the cancel is pressed, the click event will be stopped here.
return confirm("Are you sure you want to delete this?");
});
});
Я от всей души рекомендую это решение по сравнению с предыдущим, поскольку оно гораздо более элегантно и красиво, и, как правило, является наилучшей практикой.