какая зарубка, сказанная действительно, с улучшением - разделитель может быть больше чем одним символом также.
я часто использовал
GROUP_CONCAT(name SEPARATOR '"|"')
, Возможности имени пользователя, содержащего "|", являются довольно низкими, я сказал бы.
<a href="http://stackoverflow.com"
onclick="return confirm('Are you sure?');">My Link</a>
Вы всегда должны использовать кнопку формы / публикации, чтобы подтвердить что-то подобное. Никогда не полагайтесь на Javascript. Прочтите это , чтобы понять, почему!
Вы можете использовать JavaScript, чтобы предложить вам:
Нашел здесь - Пример
<script>
function confirmDelete(delUrl) {
if (confirm("Are you sure you want to delete")) {
document.location = delUrl;
}
}
</script>
<a href="javascript:confirmDelete('delete.page?id=1')">Delete</a>
Другой способ
<a href="delete.page?id=1" onclick="return confirm('Are you sure you want to delete?')">Delete</a>
Предупреждение : Этот JavaScript не остановит записи из удаляются, если они просто перейдут на последний URL - delete.page?id=1 в своем браузере
Обычно я создаю страницу удаления, которая показывает форму подтверждения, если метод запроса - «GET», и удаляет данные, если метод был «POST», а пользователь выбрал «Да» "вариант.
Затем на странице со ссылкой для удаления я добавляю функцию onclick (или просто использую плагин подтверждения jQuery ), которая использует AJAX для публикации по ссылке, минуя страницу подтверждения.
Идея в псевдокоде:
delete.php:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['confirm'] == 'Yes') {
delete_record($_REQUEST['id']); // From GET or POST variables
}
redirect($_POST['referer']);
}
?>
<form action="delete.php" method="post">
Are you sure?
<input type="submit" name="confirm" value="Yes">
<input type="submit" name="confirm" value="No">
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">
</form>
Страница со ссылкой для удаления:
<script>
function confirmDelete(link) {
if (confirm("Are you sure?")) {
doAjax(link.href, "POST"); // doAjax needs to send the "confirm" field
}
return false;
}
</script>
<a href="delete.php?id=1234" onclick="return confirmDelete(this);">Delete record</a>
PHP-способ сделать это будет используя диалоговую систему внутри php. например GTKDialogs: http://www.kksou.com/php-gtk2/articles/setup-a-dialog-box---Part-2---simple-yes-no-dialog.php Способ javacript, вероятно, немного проще, но помните, что когда javascript выключен, это не работает (кроме случаев, когда вы проверяете, включен ли javascript, а затем добавляете это !?) Это может быть обработчик onclick, например, tsvanharen, или простой текстовый диалог внутри страницы вместо всплывающего окна.
<a onClick="$('deletefromtable').show();"></a>
<div id="deletefromtable" style="display:none;">
Do you really want to do this?<br/>
<a href="deleteit.php">Yes</a>|<a onClick="$('deletefromtable').hide();">No</a>
</div>
Я использую прототип (отсюда тег $ () и show () / hide ()) для Это. но вы можете легко изменить его для работы без прототипа:
<a onClick='document.getElementById("deletefromtable").style.display = "block";' href="#">click here to delete</a>
<div id="deletefromtable" style="display:none;">
Do you really want to do this?<br/>
<a href="deleteit.php">Yes</a>|<a onClick='document.getElementById("deletefromtable").style.display = "none";' href="#">No</a>
</div>
Опять же, это не работает без javascript, но почти никакие параметры не работают.
Если вы что-то удаляете, вы всегда должны использовать POST, а не GET, поэтому использование confirm () - плохая идея. В вашей ситуации я использую модальное всплывающее окно, например jqModal , и отображаю форму с кнопками да / нет внутри всплывающего окна.