Отправка двух форм через 1 действие в javascript с использованием JQuery - PullRequest
0 голосов
/ 27 мая 2011

Так что это довольно сложно.У меня есть форма, которую мне нужно представить результаты в двух разных местах.

Первое место - вызов ajax, где я отправляю результаты на страницу PHP.Второй - просто отправка формы, как обычно.

Вот мой javascript:

<script type="text/javascript">

  $(function() {
    $("#requestaction").click(function() {
      var fname = $("input#first_name").val();
      var lname = $("input#last_name").val();
      var email = $("input#email").val();
      var phone = $("input#phone").val();
      var oid = $("input#oid").val();
      var retURL = $("input#retURL").val();

      var dataString = '&email=' + email + '&phone=' + phone + '&oid=' + oid + '&retURL=' + retURL;
      //alert (dataString);return false;
      $.ajax({
          type: "POST",
          url: "http://www.myurl.com/custom/callgateway.php?first_name=" + fname + "&last_name=" + lname,
          data: dataString
      });

      $("#requestaction").click(function() {
          $("#oid").delay(1000);
          $("#nashform").submit();
      });

    return false;
    });

  });
    </script>

Итак, я хочу, чтобы вызов ajax отправлял результаты этому.стр.А потом я хочу задержку в несколько секунд, или сколько угодно времени, пока это не будет завершено, и я хочу отправить форму с #nashform ID.Кажется, я могу сделать так, чтобы и то и другое происходило по отдельности, но когда я пробую этот код одновременно - полностью проходит только код #nashform, у ajax никогда не будет шанса.

Ответы [ 4 ]

6 голосов
/ 27 мая 2011

Поместите форму отправки в успешном обратном вызове вызова ajax:

$.ajax({
    type: "POST",
    url: "http://www.myurl.com/custom/callgateway.php?first_name=" + fname + "&last_name=" + lname,
    data: dataString,
    success: function(response) { $("#nashform").submit(); }
    });
1 голос
/ 27 мая 2011
$.ajax({
type: "POST",
url: "http://www.myurl.com/custom/callgateway.php?first_name=" + fname + "&last_name=" + lname,
data: dataString,
success: thesubmitfunction
});

Сделайте отправку формы в thesubmitfunction, в то время как она будет вызвана после успешного завершения вызова ajax

0 голосов
/ 27 мая 2011

Вместо задержки, почему бы вам не добавить отправку nashform к обратному вызову, выполненному после завершения публикации AJAX? Таким образом, вы не сможете сократить передачу AJAX в середине или перед публикацией.

Вы также можете рассмотреть возможность создания обеих публикаций с использованием AJAX ... обе публикации одновременно, после того как обе будут завершены, страница может обновиться (или даже перенаправить), создавая у пользователя иллюзию, что данные были отправлены как обычно.

0 голосов
/ 27 мая 2011

Вам нужна функция обратного вызова для отправки формы после возврата ajax().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...