#jquery #forms #validation #error-handling
#jquery #формы #проверка #обработка ошибок
Вопрос:
У меня есть две формы в одном HTML-файле.
<form id="#login" class="toggling">
</form>
<form id="#register" class="toggling">
</form>
Я переключаюсь между своими формами с помощью
$('.toggling').toggle();
который работает нормально, но проблема в том, что когда пользователь отправляет форму, даже когда пользователь находится в регистрационной форме (#register), после отправки он вернется к (#login) с сообщениями об ошибках, связанных с процессом регистрации.
Я использую php для серверной части, поэтому я буду отправлять отчеты об ошибках с помощью вызова функции error_report(), но у меня есть один контроллер (PHP) и только одно представление (HTML).
теперь вопрос в том, есть ли какой-либо способ обнаружить и сохранить, скажем, #register после отправки формы, очевидно, что при отправке входа в систему проблем нет, так как основной формой перед переключением является #login, поэтому мне просто нужно оставаться в #register, если активной формой является #register, и показывать там ошибки.
Ответ №1:
Вы можете использовать скрытое поле ввода, чтобы определить форму, которая отправляет вам запрос. например
<form id="#login" class="toggling">
<input type="hidden" name="form_type" value="login" />
</form>
<form id="#register" class="toggling">
<input type="hidden" name="form_type" value="register" />
</form>
На стороне PHP вы знаете тип и отправляете эту информацию обратно в представление. Таким $formType
образом, переменная будет использоваться для определения формы, в которой должны отображаться сообщения об ошибках.
который работает нормально, но проблема в том, что когда пользователь отправляет форму, даже когда пользователь находится в регистрационной форме (#register), после отправки он вернется к (#login) с сообщениями об ошибках, связанных с процессом регистрации.
Чтобы ответить на этот вопрос, нам также нужно знать, как вы выполняете отправку формы и как вы обрабатываете ее на стороне сервера PHP.
Дайте нам знать, поможет ли это вам или нет. если вы все еще чувствуете себя сбитым с толку, обновите свой вопрос, показав нам, как вы отправляете форму и как вы обрабатываете ее в PHP.
Комментарии:
1. спасибо за супер быстрый ответ, это решение работает, но я использовал переменную сеанса для определения FormType, а затем отключил ее при просмотре. есть ли какие-либо проблемы с использованием сеанса?
2. Зачем усложнять ситуацию, когда простой запрос может справиться с этим. Создание сеанса и управление им означает дополнительную нагрузку на сервер. Это зависит от того, как вы обрабатываете вещи.