Отправленная форма не включает параметры type = 'submit'

У меня есть большая форма с двумя кнопками отправки, и я хочу проверить на бэкэнде, какая из двух кнопок была нажата. Даже если в прошлом я делал это много раз, на этот раз у меня возникла странная проблема. Ни одна из двух кнопок не включена в параметры публикации.

Вот часть формы:

$html .= '<form type = "post" action = "" id = "my_form">';
$html .= '<div class = "form-action">';
$html .= '<input type = "hidden" name = "action" value = "addfrontenddata"/>';
$html .= '<input type = "submit" name = "submit" class = "submit-button" value = "Submit">';
$html .= '<a href = "#" class = "cancel-button">Cancel</a>';
$html .= '</div>';
$html .= '<div class = "form-action">';  
$html .= '<input type = "submit" name = "draft" class = "submit-button save-draft" value = "Save Draft">';
$html .= '</div>';  
$html .= '</form>';

И мой код Wordpress в бэкэнде

$my_post['post_status'] = isset($_POST['draft']) ? 'draft' : get_option('default_status');

Ни у $_POST['draft'] нет значения, ни у параметров, пока я отлаживаю в консоли Chrome.

У вас есть значения других полей в этой форме?

dipmala 13.07.2018 15:39

Да. Все, кроме входных данных для отправки.

Tasos 13.07.2018 15:43

Не могли бы вы поделиться всем кодом, например, в какой хук вы добавляете свой код?

dipmala 13.07.2018 15:45

Он находится в настраиваемом плагине. post_status сохраняется вместе с get_option('default_status'). Но, как я уже сказал, две кнопки не передаются из параметров, пока я проверяю консоль Chrome. Так что я не думаю, что это код PHP. Но что-то в интерфейсе

Tasos 13.07.2018 15:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
55
2

Ответы 2

Попробуй изменить

name = "submit" для name = "что угодно"

Ничего не изменилось. Я даже удалил этот name = "submit", так как проверяю только кнопку draft.

Tasos 13.07.2018 17:31

Вы заметили, что ваш тип формы установлен как post, а не как метод формы установлен как post. Изменить строку ниже

$html .= '<form type = "post" action = "" id = "my_form">';

в виде

$html .= '<form method = "post" action = "" id = "my_form">';

или просто используйте $_GET[];

Другие вопросы по теме