Я столкнулся с проблемой. Я использую Wordpress, но это не вопрос Wordpress.
Я использую две формы, в одной форме у меня есть все поля ввода и одно скрытое поле ввода, которое я использую для проверки, какую форму отправил пользователь. Я сохранил его значение как «сохранить». Есть еще одна форма, которая предназначена только для сброса всех параметров, и ее значение - «сброс». В PHP я проверяю значение скрытого поля и предпринимаю соответствующие действия. Но проблема в том, что кнопка сброса не работает.
Вот мой HTML для форм:
<fieldset>
<form method="post">
<!-- Some input fields here-->
<p class="submit">
<input name="save" type="submit" value="Save changes" />
<input type="hidden" name="action" value="save" />
</p>
</form>
</fieldset>
<fieldset>
<form method="post">
<p class="submit">
<input name="reset" type="submit" value="Reset" />
<input type="hidden" name="action" value="reset" />
</p>
</form>
</fieldset>
В PHP я проверяю их следующим образом:
// if I change the 'save' literal to something else like 'savea', $_POST variable will not be empty
// but if I dont, then $_POST variable is NULL
if ('save' == $_POST['action']) {
foreach ($this->cp_options as $option) {
if (isset($_POST[$option['id']])) {
update_option($option['id'], $_POST[$option['id']]);
}
else {
delete_option($option['id']);
}
}
header("Location: themes.php?page=functions.php&saved=true");
die;
}
// if I change the 'reset' literal to something else like 'reseta', $_POST variable will not be empty
// but if I dont, then $_POST variable is NULL
elseif ('reset' == $_POST['action']) {
foreach($this->cp_options as $option) {
delete_option($option);
}
header("Location: themes.php?page=functions.php&reset=true");
die;
}
Проблема в том, что если я заменил литерал 'reset'
или 'save'
на что-либо еще, например 'reseta'
или 'saveasdfasd'
, $_POST
, переменная не будет пустой, но если я не буду, то переменная $_POST
NULL
.
Есть идеи, почему это происходит?