Jump to content
  • 0

Массив POST


Игорь Ермаков
 Share

Question

Такая проблема образовалась. Я конечно понимаю, что если не могу это решить, то я получаюсь полный кран, но всё-таки дочитайте до конца.

Цель: реализовать удаление комментариев

Вобщем всё просто создаю цикл, вывода комментов, к важдому комменту кнопочка удалить.

Делаю обычный цикл

do
{
$i++;
printf("<div class='comment'>
<p>Автор этзыва: %s</p>
<p>%s</p>
<form action='comments.php' method='post' name='form'>
<input name='[color="#2E8B57"][b]kn$i[/b][/color]' type='submit' value='Удалить'>
</form>
</div>
",$myrow['author'],$myrow['text']);
}
while($myrow = mysql_fetch_array($result));

далее начинается проблема

в файл обработки у меня летит значение атрибута name, а именно kn$i

его нужно проверить

пишу

if (isset($_POST['А вот что написать здесь не понимаю, пробовал по разному, всё равно не обрабатывается'])) {код}

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

тут в логике ошибка...

если каждый элемент в своей форме, то делаете скрытое поле с именем, например commid, и в значении номер этого элемента, а кнопку везде называете одинаково, например del.

при получении проверяете наличие del, и если есть, то берете commid и удаляете по его значению.

Link to comment
Share on other sites

  • 0

А как проверить commid ?

ведь я переменную подставляю туда.

<input name='$i' type='hidden' value='commid'>

<input name='kn' type='submit' value='Удалить'>

if (isset($_POST['kn'])) {

if (isset($_POST['не знаю, что сюда написать'])) {.....}

}

Link to comment
Share on other sites

  • 0

<input name='comm[".$myrow['id']."]' type='checkbox'>
<input name='del' type='submit' value='Удалить'>
if (isset($_POST['del'])) {

if (!empty($_POST['comm'])) {
foreach($_POST['comm'] as $ID=>$val){
mysql_query("DELETE .... WHERE `ID`='$ID'")
}
}
}

<input name='commid' type='hidden' value='".$myrow['id']."'>
<input name='del' type='submit' value='Удалить'>
if (isset($_POST['del'])) {
if (!empty($_POST['commid'])) {
mysql_query("DELETE .... WHERE `ID`='$_POST[commid]'")
}
}

Edited by elfuvo
Link to comment
Share on other sites

  • 0
А как проверить commid ?

ведь я переменную подставляю туда.

<input name='$i' type='hidden' value='commid'>

<input name='kn' type='submit' value='Удалить'>

if (isset($_POST['kn'])) {

if (isset($_POST['не знаю, что сюда написать'])) {.....}

}

Я же писал: "...скрытое поле с именем, например commid, и в значении номер этого элемента...". Вы же почему-то сделали все наоборот. Мыслите логически. Номер записи тут является значением, которое надо получить в переменной. А что у нас переменная - имя поля. Значит надо так <input name='commid' type='hidden' value='$i'>

Как, собственно, elfuvo и написал.

Link to comment
Share on other sites

  • 0

ЭТО НЕВЕРОЯТНО, НО ВСЁ ЖЕ ЗАРАБОТАЛО!!!

Спасибо всем.

Со вторым способом разобрался, а с первым пока не получается. Сейчас пытаюсь вникнуть в смысл функции foreach

Victor Ananiev, ты про книгу, говорил, может посоветуешь какую-нибудь. Я не могу нормальной найти книги. В магазинах лежат либо толмуты по 1000 страниц, в которых объяснено всё, но очень узко и без подробностей. Либо самоучители для начинающих, либо наоборот книги для крутых прогеров. Я не могу найти свой уровень, мне не нужно, чтобы в книге объяснялось как установить сервер и как вывести на экран hello world, но и нужно, что-нибудь по проще, книг для суперпрограммеров.

Link to comment
Share on other sites

  • 0

Качни первую попавшуюся в поиске по "php" с rapidlinks.ru =) Если, конечно, у тебя Отдел К ежедневные облавы не устраивает.

Foreach пробегает массив, представляя каждый его элемент в виде переменной:

$a=array(1,2,3);

foreach ($a as $num)

echo $num;

Здесь $num последовательно принимает значения 1,2,3;

$a=array("a"=>1,"b"=>2,"c"=>3);

foreach ($a as $key=>$num)

echo $key.'('.$num.')';

Здесь в $key будут a,b,c, а в $num так же 1,2,3

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy