Ajax отправляет несколько форм, используя значения одной формы - PullRequest
0 голосов
/ 17 октября 2011

Допустим, у меня есть несколько таких форм:

Форма А:

<form name="formA">
  <input type="text" name="username">
  <input type="text" name="password">
</form>

Форма B:

<div style="display:none;">
  <form name="formB">
    <input type="text" name="username">
    <input type="text" name="password">
  </form>
</div>

Форма C:

<div style="display:none;">
 <form name="formC">
    <input type="text" name="username">
    <input type="text" name="password">
 </form>
</div>

Формы B и C скрыты, они у меня есть, потому что после того, как пользователь вводит свое имя пользователя и пароль в форме A, мне нужно также использовать эти данные имени пользователя и пароля, которые они представили, для использования в формах B и C, а затем отправить все формы сразу. Это значит, что я могу отправить логин нескольким частям моего сайта, используя только одну форму авторизации. Как именно я должен делать это?

-Спасибо!

Ответы [ 3 ]

1 голос
/ 17 октября 2011

Если вам не нужен https для функции входа в систему, вы можете попробовать это с помощью jQuery и плагина ajaxForm :

<form name="formA" action="actionA">
  <input id="usernameA" type="text" name="username">
  <input id="passwordA" type="password" name="password">
</form>

<div style="display:none;">
  <form name="formB" action="actionB">
    <input id="usernameB" type="text" name="username">
    <input id="passwordB" type="password" name="password">
  </form>
</div>

<div style="display:none;">
  <form name="formC" action="actionC">
    <input id="usernameC" type="text" name="username">
    <input id="passwordC" type="password" name="password">
  </form>
</div>


$('#formA').submit(function() {
    var username = $('#usernameA').val();
    var password = $('#passwordA').val();

    $('#usernameB').val(username);
    $('#passwordB').val(password);
    $('#usernameC').val(username);
    $('#passwordC').val(password);

    $('#formB').ajaxForm(function() { 
        alert("You have been logged in at B"); 
    });
    $('#formC').ajaxForm(function() { 
        alert("You have been logged in at C"); 
    }); 
});

Когда вы отправляете ajax-запрос на сервер для входа в системув B и C, если ваш сервер отправит обратно cookie при успешном входе в систему, я думаю, что вы можете пойти: P

0 голосов
/ 17 октября 2011

1) Вы должны использовать type="password" для полей ввода пароля.

2) Вы не можете отправить более одной формы одновременно.Будут отправлены только данные из формы, которая отправляется.Из того, что я понимаю, что вы пытаетесь сделать, вы хотите, чтобы одна кнопка открывала три разные страницы для трех разных форм входа в систему для хранения трех разных сессий.Существуют лучшие способы заставить ваши сеансы (или файлы cookie) работать в нескольких разделах вашего веб-сайта, например, прикрепить идентификатор сеанса к URL-адресу, чтобы он всегда был у вас при каждой загрузке страницы.

3) Требуется формаопределить action.

0 голосов
/ 17 октября 2011

Вы можете использовать несколько значений для каждого имени переменной. Например:

<form name="formABC">
  <div id="formA">
    <input type="text" name="username[]">
    <input type="text" name="password[]">
  </div>
  <div id="formB" style="display:none;">
    <input type="text" name="username[]">
    <input type="text" name="password[]">
  </div>
  <div id="formC" style="display:none;">
    <input type="text" name="username[]">
    <input type="text" name="password[]">
  </div>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...