Неправильные кнопки отправки отправляются в POST с помощью PHP-скрипта - PullRequest
0 голосов
/ 09 июня 2018

Моя форма PHP использует несколько кнопок отправки, которые я использую для A / B-обработки

Иногда неправильные кнопки отправки передаются, даже если они не были нажаты.Кнопки выглядят так:

<form method="post" action="url..." autocomplete="off">
... fields...
<input type="submit" name="UpdateExit" value="Exit" />
<input type="submit" name="UpdateSave" value="Save" />
<input type="submit" name="InsertNew" value="Insert new" />
<input type="submit" name="Delete" value="Delete" />            
<input type="button" name="Cancel" value="Cancel" />
</form>

Иногда var_dump($_POST) показывает и UpdateExit, и UpdateSave , хотя я нажал InsertNew!Излишне говорить, что это портит вывод.Затем «правая кнопка» отправляется.

Я сузил это поведение до браузеров webkit, и в первый раз, когда я использую форму после очистки кэша моего браузера, она, похоже, "возвращается в нормальное состояние".Это эмпирически, и я не могу сказать, что это связано с PHP или HTML.но я боролся с этим в течение большей части дня и не нашел места в информации о SO или где-либо еще: (

Кто-нибудь слышал / сталкивался с подобным поведением?

1 Ответ

0 голосов
/ 09 июня 2018

Попробуйте:

<form method="post" action="url..." autocomplete="off">
... fields...
<input type="submit" name="UpdateExit" value="Exit" />
<input type="submit" name="UpdateSave" value="Save" />
<input type="submit" name="InsertNew" value="Insert new" />
<input type="submit" name="Delete" value="Delete" />            
<input type="submit" name="Cancel" value="Cancel" />
</form>

Обрабатывать логику отмены так же, как и любую другую кнопку отправки.

Логика обработчика форм PHP:

<?php
    if (isset($_POST['UpdateExit'])) {
        //Do something based on Update and Exit was used
    }
    elseif (isset($_POST['UpdateSave'])) {
        //Do something based on Update and Save was used
    }
    elseif (isset($_POST['InsertNew'])) {
        //Do something based on Insert New was used
    }
    elseif (isset($_POST['Delete'])) {
        //Do something based on Delete was used
    }
    else {
        //Do something because Cancel was used...
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...