Передача данных обработчику HTML-формы POST-методом
Primary tabs
Имеется html-форма:
<form method="post" action="/index.php?action=article/edit&id=<?= $_GET['id']; ?>"> <h5>Введите название статьи</h5> <input type="text" name="title" value="<?= $viewArticle->title ?>"><br> <h5>Выберите категорию статьи</h5> <input type="text" name="categoryId" value="<?= $viewArticle->categoryId ?>"><br> <h5>Краткое описание статьи</h5> <textarea rows="5" cols="100" name="summary"><?= $viewArticle->summary ?></textarea><br> <h5>Текст статьи</h5> <textarea rows="20" cols="100" name="content"><?= $viewArticle->content ?></textarea><br> <input type="submit" name="saveChanges" value="Сохранить"> <input type="submit" name="cancel" value="Назад"> </form>
и её обработчик:
public function editAdminAction() { $id = $_GET['id']; \DebugPrinter::debug($_POST); \DebugPrinter::debug($id); if (!empty($_POST)) { if ($_POST['saveChanges'] == 'Сохранить') { // \DebugPrinter::debug('$_POST'); $Article = new Article(); $newArticle = $Article->loadFromPost(); $newArticle->update(); $this->header("index.php?action=article/edit&id=$id"); } elseif ($_POST['cancel'] == 'Назад') { // \DebugPrinter::debug("Отмена операции"); $this->header("index.php?action=article/index&id=$id"); } } else { $Article = new Article(); $this->viewArticle = $Article->getById($id); $this->editArticleTitle = "Редактирование статьи"; $this->view->addVar('viewArticle', $this->viewArticle); $this->view->addVar('editArticleTitle', $this->editArticleTitle); $this->view->render('article/editAdmin.php'); } }
Условие
if (!empty($_POST))
в обработчике никогда не выполняется, хотя форма должна передавать данные POST-ом.
В чём ошибка?
- Log in to post comments
- 4201 reads
vedro-compota
Fri, 07/21/2017 - 16:25
Permalink
у вас там редирет -- данные
у вас там редирет -- данные предаются нормально, просто вы не видите ответ.
_____________
матфак вгу и остальная классика =)
melisa
Fri, 07/21/2017 - 17:00
Permalink
спасибо
спасибо
melisa
Wed, 07/26/2017 - 15:24
Permalink
Решено
Форма не передавала id статьи, которую надо редактировать.
Решено добавлением скрытого поля: