Спустя 1 минута, 12 секунд (16.02.2011 - 14:46) DmitryOpalev написал(а):
Не понял... типа <input type='image'>?
Спустя 14 минут, 32 секунды (16.02.2011 - 15:00) m4a1fox написал(а):
Я так пробовал. Тут проблемка с запросом в БД. Хочется что бы он был на этой же странице.
Насколько понимаю вот так должно быть. <input type="image" name="delete" value=".$_POST['id'].">
А на странице сверху написать - if(isset($_POST['delete']))
{
$query = mysql_query("DELETE FROM data WHERE id =".$_POST['id'] )
}
Гляньте! Так это будет приблизительно?
Насколько понимаю вот так должно быть. <input type="image" name="delete" value=".$_POST['id'].">
А на странице сверху написать - if(isset($_POST['delete']))
{
$query = mysql_query("DELETE FROM data WHERE id =".$_POST['id'] )
}
Гляньте! Так это будет приблизительно?
Спустя 20 минут, 26 секунд (16.02.2011 - 15:21) DmitryOpalev написал(а):
Да, коллега

Спустя 49 минут, 42 секунды (16.02.2011 - 16:10) m4a1fox написал(а):
DmitryOpalev
Дык.... не работает!
Дык.... не работает!
Спустя 17 минут, 41 секунда (16.02.2011 - 16:28) m4a1fox написал(а):
Что то тут не так. Я хочу рядом с постом поставить кнопочку, по щелчку на кот. запись будет удаляться.
Спустя 37 минут, 44 секунды (16.02.2011 - 17:06) Ulan написал(а):
дело в том, что <image> передает не просто
а в виде
потому условие нажатия кнопки нужно проверять по этим переменным.
$_POST['delete']
а в виде
$_POST['delete_x']
$_POST['delete_y']
потому условие нажатия кнопки нужно проверять по этим переменным.
Спустя 3 минуты, 23 секунды (16.02.2011 - 17:09) m4a1fox написал(а):
А если поместить submit? Дело в том что я уже перепробывал много вариантов. Ни как не могу найти правильный ответ.
Спустя 10 минут, 7 секунд (16.02.2011 - 17:19) Ulan написал(а):
кстати <image> поле value вообще не передает
я сделал так, хотя это может и не совсем красиво
и запрос, только я делал для update
тоже самое легко трансформируется для submit
я сделал так, хотя это может и не совсем красиво
<form action="" method="post">
<p><h3>правка</h3></p>
<input name="id" type="hidden" value="<?php echo $edit_res['id']?>">
<p><textarea name="edit_message" ><?php echo $edit_res['message']?></textarea></p>
<p><input name="edit" type="image" src="skins/images/imgbutton.gif"></p>
</form>
и запрос, только я делал для update
$id = isset($_POST['id']) ? $_POST['id'] : null;
if (isset($_POST['edit_x']))
{
mysqlQuery("UPDATE `". IRB_DBPREFIX ."guest` SET `message`='".
$_POST['edit_message'] ."' WHERE `id`='". $id ."'", 0);
reDirect();
}
тоже самое легко трансформируется для submit
Спустя 58 минут, 34 секунды (16.02.2011 - 18:18) m4a1fox написал(а):
Ulan
А если цикл. Как к картинке прикрепить id?
А если цикл. Как к картинке прикрепить id?
Спустя 3 минуты, 50 секунд (16.02.2011 - 18:22) m4a1fox написал(а):
А если так? Запрос if (isset($_POST['edit_x']))
{
mysql_query("DELETE FROM `data` WHERE `id`='". $_POST['id'] ."'");
}
А картинка - <input name="delete" value="'.$myrow['id'].'" type="image" src="./img/delete.gif">?
{
mysql_query("DELETE FROM `data` WHERE `id`='". $_POST['id'] ."'");
}
А картинка - <input name="delete" value="'.$myrow['id'].'" type="image" src="./img/delete.gif">?
Спустя 12 минут, 2 секунды (16.02.2011 - 18:34) Ulan написал(а):
у меня id передается через скрытое поле, в цикле этот участок и обрабатывается, выводя кнопку для каждой записи.
<input name="id" type="hidden" value="<?php echo $edit_res['id']?>">
а элемент image поле value передавать не будет, только поле name.
<input name="id" type="hidden" value="<?php echo $edit_res['id']?>">
а элемент image поле value передавать не будет, только поле name.
Спустя 1 минута, 9 секунд (16.02.2011 - 18:35) inpost написал(а):
<input type="submit" class="image">
.image {background-image:}
Хватит уже советовать type="image", он передаёт 3 значения и с ним огромные путаницы.
.image {background-image:}
Хватит уже советовать type="image", он передаёт 3 значения и с ним огромные путаницы.
Спустя 11 минут, 25 секунд (16.02.2011 - 18:46) Ulan написал(а):
я ж написал что вариант не идеальный 
спасибо за подсказку

спасибо за подсказку
Спустя 1 минута, 20 секунд (16.02.2011 - 18:48) m4a1fox написал(а):
Ulan
Я не понимаю. Как скрипт удалит запись, если он не знает id который я передаю?
Я не понимаю. Как скрипт удалит запись, если он не знает id который я передаю?
Спустя 9 минут, 42 секунды (16.02.2011 - 18:57) Ulan написал(а):
я ж написал тремя постами выше свой вариант решения.
Спустя 13 минут, 16 секунд (16.02.2011 - 19:10) m4a1fox написал(а):
Да. Спасибо. Разобрался. Теперь нормально удаляет. Только жаль что не смогу применить. Так как у меня есть уже удаление. Просо работает немного лучше. Я просто выделяю несколько или одну строк и нажимаю удалить. И скрипт удаляет. А так, как сегодня сделал, получается первый скрипт не работает.(
Спустя 38 минут, 18 секунд (16.02.2011 - 19:49) alex12060 написал(а):
А я через аякс удаляю)
Просто делаю так:
А функция:
И сам запрос:
Хоть тут и через классы реализованно, мне кажется, что все предельно просто.
З.Ы Использую JQuery
Просто делаю так:
echo '<img src="rem.png" onclick=\'if (confirm("Удалить запись?")) { adm_del("'.$g[0].'", "'.$_SESSION['hash'].'"); }\' style="cursor: pointer" alt="Удалить" />';
А функция:
function adm_del(id, hash) {
if (id.length == 0) { $(".alert").html("<b>Параметр `идентификатор` пуст!</b>").fadeOut(5000); }
if (hash.length < 8 || hash.length > 8) { document.location.href="login.php?act=login&nohash"; }
$.ajax({
type: "GET",
url: "admin.php",
data: "act=del_post&id="+id+"&hash=<?php echo mt_rand(100, 999).'es'; ?>"+hash+"",
success: function(msg) {
$(".alert").css({'background-color' : '#CFF7CB', 'border-color' : '#389C2D'}).html('<b>'+msg+'</b>').fadeIn(500);
$('#post_'+id).fadeOut(2000);
$(".alert").fadeOut(5000);
}
});
}
И сам запрос:
private function procDel($id) {
$del = $this->sql("DELETE FROM `messages` WHERE `id`='$id'", 1);
if (!$del) { echo 'Невозможно удалить запись :('; return false; }
echo 'Запись успешно удалена из базы!';
return true;
}
Хоть тут и через классы реализованно, мне кажется, что все предельно просто.
З.Ы Использую JQuery
Спустя 2 минуты, 50 секунд (16.02.2011 - 19:52) m4a1fox написал(а):
alex12060
Силен. Но если не сложно, я сейчас попробую сделать, и скорее всего будут вопросы - поможете?
Силен. Но если не сложно, я сейчас попробую сделать, и скорее всего будут вопросы - поможете?
Спустя 1 минута, 39 секунд (16.02.2011 - 19:53) m4a1fox написал(а):
alex12060
А если все вынимается через массив - ничего страшного?
А если все вынимается через массив - ничего страшного?
Спустя 23 секунды (16.02.2011 - 19:54) alex12060 написал(а):
Не вопрос)
Просто реализуй не через классы) Я у себя в ГК это использую прост)
Потом + поставь))
Просто реализуй не через классы) Я у себя в ГК это использую прост)
Потом + поставь))
Спустя 1 минута, 18 секунд (16.02.2011 - 19:55) alex12060 написал(а):
m4a1fox
Цитата |
adm_del("'.$g[0].'", |
Если ты заметил, у меня тоже) Главное в 1 параметр вставь id записи, второй параметр необязателен для тебя, но лучше подстраховаться и завести хэш.
Спустя 51 секунда (16.02.2011 - 19:56) m4a1fox написал(а):
alex12060
Само собой. но... эээ а уточнение - не через классы? А через что? И что такое ГК?
Само собой. но... эээ а уточнение - не через классы? А через что? И что такое ГК?
Спустя 2 минуты, 3 секунды (16.02.2011 - 19:58) m4a1fox написал(а):
alex12060
Сейчас попробую.... Но даже визуально не могу представить как это выглядит! И еще. У вас $g[0]. А у меня получается как будет? $myrow['id']. ноль куда вставлять? Или лучше заранее сделать так $myrow['id'] = $g?
Сейчас попробую.... Но даже визуально не могу представить как это выглядит! И еще. У вас $g[0]. А у меня получается как будет? $myrow['id']. ноль куда вставлять? Или лучше заранее сделать так $myrow['id'] = $g?
Спустя 56 секунд (16.02.2011 - 19:59) alex12060 написал(а):
function procDel($id) {
$del = mysql_query("DELETE FROM `messages` WHERE `id`='$id'");
if (mysql_affected_rows() == -1) { if (!$del) { echo 'Не существует такой записи!'; return false; } }
if (!$del) { echo 'Невозможно удалить запись :('; return false; }
echo 'Запись успешно удалена из базы!';
return true;
}
Тебе будет достаточно.
ГК - Гостевая книга)
Спустя 1 минута, 25 секунд (16.02.2011 - 20:00) alex12060 написал(а):
Да, туда идет идентификатор записи. 0? Я тебе функцию переделал выше.
Спустя 7 минут, 52 секунды (16.02.2011 - 20:08) m4a1fox написал(а):
alex12060
А вот и вопросы!!!! Вот кнопка -
вот функция, она крепиться вверху страницы -
А вот и вопросы!!!! Вот кнопка -
<img src="./img/delete.gif" onclick=\'if (confirm("Удалить запись?"))
{ procDel("'.$g[0].'", "'.$_SESSION['hash'].'"); }\'
style="cursor: pointer" alt="Удалить" />
вот функция, она крепиться вверху страницы -
function procDel($g) {
$del = mysql_query("DELETE FROM `data` WHERE `id`='$g'");
if (mysql_affected_rows() == -1) { if (!$del) { echo 'Не существует такой записи!'; return false; } }
if (!$del) { echo 'Невозможно удалить запись :('; return false; }
echo 'Запись успешно удалена из базы!';
return true;
}
Спустя 4 минуты, 19 секунд (16.02.2011 - 20:12) alex12060 написал(а):
Я тебе сказал же, что 2 параметр - hash тебе не обязателен. Если, кончно, у тебя есть админская сессия, то вписывай ее туда.
А еще, это яваскриптовскя функция, тебе надо передавать запрос аяксом.
А еще, это яваскриптовскя функция, тебе надо передавать запрос аяксом.
Спустя 1 минута, 41 секунда (16.02.2011 - 20:14) m4a1fox написал(а):
alex12060
Тоесть. Убрать "'.$_SESSION['hash'].'". А передать Аяксом? Это -
Тоесть. Убрать "'.$_SESSION['hash'].'". А передать Аяксом? Это -
function adm_del(id, hash) {
if (id.length == 0) { $(".alert").html("<b>Параметр `идентификатор` пуст!</b>").fadeOut(5000); }
if (hash.length < 8 || hash.length > 8) { document.location.href="login.php?act=login&nohash"; }
$.ajax({
type: "GET",
url: "admin.php",
data: "act=del_post&id="+id+"&hash=<?php echo mt_rand(100, 999).'es'; ?>"+hash+"",
success: function(msg) {
$(".alert").css({'background-color' : '#CFF7CB', 'border-color' : '#389C2D'}).html('<b>'+msg+'</b>').fadeIn(500);
$('#post_'+id).fadeOut(2000);
$(".alert").fadeOut(5000);
}
});
}
Спустя 7 минут, 3 секунды (16.02.2011 - 20:21) alex12060 написал(а):
Да, все правильно.
Спустя 4 минуты, 22 секунды (16.02.2011 - 20:25) m4a1fox написал(а):
alex12060
Так... Банальный вопрос. Аксн нельзя ставить вот <?php тут ?>?
Так... Банальный вопрос. Аксн нельзя ставить вот <?php тут ?>?
Спустя 12 минут, 32 секунды (16.02.2011 - 20:38) m4a1fox написал(а):
))) С этим разобрался.
Спустя 47 секунд (16.02.2011 - 20:39) m4a1fox написал(а):
Что-то с ссылками запутался.((
Спустя 1 минута, 41 секунда (16.02.2011 - 20:40) m4a1fox написал(а):
Так. Начну по порядку. Вот кнопка -
вот функция. -
И вот аякс
Постарался убрать hash. Но именно запутался... При нажатии ничего не происходит.
<img src="./img/delete.gif" onclick=\'if (confirm("Удалить запись?"))
{ adm_del("'.$g[0].'"); }\'
style="cursor: pointer" alt="Удалить" />
вот функция. -
function procDel($g) {
$del = mysql_query("DELETE FROM `data` WHERE `id`='$g'");
if (mysql_affected_rows() == -1) { if (!$del) { echo 'Не существует такой записи!'; return false; } }
if (!$del) { echo 'Невозможно удалить запись :('; return false; }
echo 'Запись успешно удалена из базы!';
return true;
}
И вот аякс
<script type="text/javascript">
function adm_del(id) {
if (id.length == 0) { $(".alert").html("<b>Параметр `идентификатор` пуст!</b>").fadeOut(5000); }
if (hash.length < 8 || hash.length > 8) { document.location.href="admin_news.php?act=login&nohash"; }
$.ajax({
type: "GET",
url: "admin_news.php",
data: "act=del_post&id="+id+"&hash=<?php echo mt_rand(100, 999).'es'; ?>"+id+"",
success: function(msg) {
$(".alert").css({'background-color' : '#CFF7CB', 'border-color' : '#389C2D'}).html('<b>'+msg+'</b>').fadeIn(500);
$('#post_'+id).fadeOut(2000);
$(".alert").fadeOut(5000);
}
});
}
</script>
Постарался убрать hash. Но именно запутался... При нажатии ничего не происходит.
Спустя 2 минуты, 14 секунд (16.02.2011 - 20:43) m4a1fox написал(а):
Так.... НА ПЕРЕКУР!
Спустя 3 минуты, 38 секунд (16.02.2011 - 20:46) alex12060 написал(а):
<script type="text/javascript">
function adm_del(id) {
if (id.length == 0) { $(".alert").html("<b>Параметр `идентификатор` пуст!</b>").fadeOut(5000); }
if (hash.length < 8 || hash.length > 8) { document.location.href="admin_news.php?act=login&nohash"; }
$.ajax({
type: "GET",
url: "admin_news.php",
data: "act=del_post&id="+id+"",
success: function(msg) {
$(".alert").css({'background-color' : '#CFF7CB', 'border-color' : '#389C2D'}).html('<b>'+msg+'</b>').fadeIn(500);
$('#post_'+id).fadeOut(2000);
$(".alert").fadeOut(5000);
}
});
}
</script>
А ты JQuery подключил?
Спустя 13 минут, 27 секунд (16.02.2011 - 21:00) m4a1fox написал(а):
ээ............... нет
Спустя 55 секунд (16.02.2011 - 21:01) m4a1fox написал(а):
Сейчас подключу. Если не ошибаюсь то этот кусок кода надо вставить? <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
Спустя 1 минута, 9 секунд (16.02.2011 - 21:02) m4a1fox написал(а):
Подключил... но он не реагирует. Тут именно с ссылками что-то не так, я думаю.
Спустя 3 минуты, 29 секунд (16.02.2011 - 21:05) m4a1fox написал(а):
alex12060
А вот функция procDel куда подключается?
А вот функция procDel куда подключается?
Спустя 9 часов, 51 минута, 13 секунд (17.02.2011 - 06:57) alex12060 написал(а):
Вот мой код:
Вот так в идеале быть должно (некоторые элементы упустил)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Гостевая книга 1.0</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function adm_del(id, hash) {
if (id.length == 0) { $(".alert").html("<b>Параметр `идентификатор` пуст!</b>").fadeOut(5000); }
if (hash.length < 8 || hash.length > 8) { document.location.href="login.php?act=login&nohash"; }
$.ajax({
type: "GET",
url: "admin.php",
data: "act=del_post&id="+id+"&hash=213es"+hash+"",
success: function(msg) {
$(".alert").css({'background-color' : '#CFF7CB', 'border-color' : '#389C2D'}).html('<b>'+msg+'</b>').fadeIn(500);
$('#post_'+id).fadeOut(2000);
$(".alert").fadeOut(5000);
}
});
}
</script>
...
Вот так в идеале быть должно (некоторые элементы упустил)