Банальное про php

12
Seredniy
На сайте с 17.03.2008
Offline
251
939

Собственно есть табличка, в которой выводятся записи из определенной таблицы бд. Под каждой записью есть кнопочки: изменить, добавить, удалить. Так вот, как сделать чтобы при нажатии на "удалить", к примеру, обработчик удалял с бд данные.

Как запрос сделать я знаю, я не знаю что передавать ссылкой и как сделать удаление не переходя на другую страницу, а просто обновляя пейдж.

Если невнятно объяснил - звиняйте.

Wordpress и другие CMS: правки, настройка, верстка и натяжка шаблонов, разработка сайтов "под ключ" (/ru/forum/1008050)
Ragnarok
На сайте с 25.06.2010
Offline
239
#1

самое банальное, примерно так:

делаешь ссылку на

http://site.ru/page/?del=13

http://site.ru/page/ --путь к странице

сверху страницы http://site.ru/page/

<?php

if(!empty($_GET['del'])) {

mysql_query("delete from table where id=".(int)$_GET['del'].");

header("location: http://site.ru/page/");

}

?>

//TODO: перестать откладывать на потом
Seredniy
На сайте с 17.03.2008
Offline
251
#2

Спасибо большое, буду работать

Ragnarok
На сайте с 25.06.2010
Offline
239
#3

ссылки лучше сделать таким образом:

<a href="javascript:void(0);" onClick="conf('/page/?del=13', 'Вы уверены?');">удалить</a>

правда, для этого нужно будет добавить

<script type="text/javascript">

function conf(location, mess)

{

if (window.confirm(mess) == false)

{

}

else

{

window.location = location;

}

}

</script>

D
На сайте с 14.01.2007
Offline
153
#4

вариантов несколько:

1. каждая кнопка это отдельная форма, где либо в "action" либо в "hidden input" хранятся все параметры для определения нужного действия на сервере(добавить/удалить, название таблицы, ид строчки)

2. тоже самое на AJAX

Seredniy
На сайте с 17.03.2008
Offline
251
#5

А примерчик Аякс-кода никто не подкинет? Я просто реально даже не знаю что искать)

D
На сайте с 14.01.2007
Offline
153
#6

если вы будете это делать на АЯКСЕ, то "придётся" ещё на лету изменять страницу. вот и подумайте, нужно ли вам это :)

http://api.jquery.com/jQuery.ajax/

php.developer
На сайте с 22.11.2010
Offline
94
#7

Не так все сложно. Например, с jQuery

пишем функцию


function delete_item(item_id){
jQuery.ajax({
url:'/ajax.php',
type:'post',
data:{action:"delete",item:item_id},
success:function(data) {
//Здесь, например, вывод уведомления о успешном удалении, и удаление строки из таблицы. }
})
return false;
}

В ajax.php пишем примерно следующее.


<?php
if($_POST['action']=='delete' && isset($_POST['item'])){
//удаляем данные из бд
}

Ну и на ссылку, которая отвечает за удаление, в таблице вешаем на


<a href="#" onclick="return delete_item(<?php echo $item['id']; ?>);">Delete</a>

Всё. Учтите, что это только пример, поэтому не забываем проверять все данные и тд.

DiAksID
На сайте с 02.08.2008
Offline
236
#8

зачем здесь аякс то, для "утончённости" 😂 ? задачка - классика жанра, HTML формы именно для подобного и придуманы. всё можно изяЧно внутри одной формы организовать...

show must go on !!!...
Ragnarok
На сайте с 25.06.2010
Offline
239
#9
php.developer:

В ajax.php пишем примерно следующее.

<?php
if($_POST['action']=='delete' && isset($_POST['item'])){
//удаляем данные из бд
}

главное, закрыть этот ajax.php от посторонних и проверку авторизации прикрутить =))

php.developer
На сайте с 22.11.2010
Offline
94
#10
Ragnarok:
главное, закрыть этот ajax.php от посторонних и проверку авторизации прикрутить =))

Я написал, что это пример. Я же не говорю, что нужно просто тупо скопировать. Человек спросил как, я показал один из вариантов.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий