2014-10-21 3 views
0

, поэтому я создал небольшой веб-сайт с системой управления контентом, которую я создал с помощью PHP и mysql. То, что я пытаюсь достичь, - это то, что пользователь должен иметь возможность редактировать и удалять сообщения объявлений, которые они делают, поэтому я использую $ _GET, чтобы получить идентификатор сообщения, которое нужно отредактировать/удалить, и вставить в форму, которая содержит код для этого.

Теперь, это код, который я использую

if(isset($_GET['edit'])) { 
    header('Location: announcement-edit.php?AnnouncementID='.$_GET['AnnouncementID']); 
}  

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

<form action="announcements.php" method="get"> 

<input type="hidden" name="AnnouncementID" value="<?php echo $row['AnnouncementID'];?>" /> 
    <input name="edit" value="Modify" type="submit"> 
    <input name="delete" value="Delete" type="submit" > 
    </form> 

Это где это меня смущает, этот код работал абсолютно отлично, а затем на прошлой неделе он остановился, 2 дня назад он снова начал работать и теперь снова сломался. Когда кнопка нажата, URL возвращается как; ?

URL/папка/announcements.php AnnouncementID = 7 & редактировать = Изменить

Когда его должны возвращаться;

URL/папка/анонс-edit.php? AnnouncementID = 7

Если я вручную ввести выше в адресной строке браузера она работает абсолютно нормально, и я могу обновить строки в БД.

Я полностью задумался, почему это так темпераментно, я что-то пропустил? я пытаюсь сделать это устаревшим способом?

Его не так, как будто я только что последовал за случайным человеком на youtube, как это сделать. Мне действительно показали это в университете (только в прошлом учебном году), и нам сказали, что это «хорошая практика». Кажется очень странным, что он отлично работает одну минуту, а затем отказывается работать дальше.

Любые мысли или предложения будут очень признательны.

ответ

0

Вам не нужно использовать форму. Вы можете сделать это просто используя URL и использовать тег Попробуйте передать свой Parametr через прибудете Parametr так:

<a href="announcements.php?AnnouncementID=<?php echo $row['AnnouncementID'];?>&edit=1">Edit</a> 
<a href="announcements.php?AnnouncementID=<?php echo $row['AnnouncementID'];?>&delete=1">Delete</a> 
+0

Ничего себе, спасибо, я должен был подумать об этом, когда я сказал, что могу набирать URL-адрес вручную, и это сработало. – user3527102

+0

Рад видеть, что это работа для вас :) –

1

У вас есть два представить кнопки в вашей форме, что приводит к срабатыванию отправки события только один раз, когда вы нажимаете Enter ключа. Итак, когда нажата кнопка Удалить, ваши параметры GET будут иметь только запись delete, а не запись edit.

Один из способов решения этого вопроса - дать одно и то же имя и дать другое значение, так как уже есть другое значение.

<form action="announcements.php" method="get"> 
    <input type="hidden" name="AnnouncementID" value="<?php echo $row['AnnouncementID'];?>" /> 
    <input name="action" value="Modify" type="submit" /> 
    <input name="action" value="Delete" type="submit" /> 
</form> 
+0

Спасибо за быстрый ответ, но я также если (Исеть ($ _ GET [ «удалить» ])) { header ('Местоположение: Объявление-delete.php? Объявление ID ='. $ _ GET ['AnnouncementID']); } Я не хотел вставлять оба, потому что я хотел, чтобы это было максимально ясно, если я полностью удалю кнопку удаления, у меня все еще есть та же проблема. – user3527102