как оставаться липким после отправки формы с помощью jQuery toggle

#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. Зачем усложнять ситуацию, когда простой запрос может справиться с этим. Создание сеанса и управление им означает дополнительную нагрузку на сервер. Это зависит от того, как вы обрабатываете вещи.