Отправить форму на несколько URL - PullRequest
3 голосов
/ 06 ноября 2011

есть ли способ опубликовать форму для большего количества URL?
Мне это нужно в javascript .. Например: у меня есть 2 документа: 1.php и 2.php. Я хочу, чтобы форма отправляла данные в оба этих файла, но перейдите в 1.php. Вы знаете как?

Ответы [ 4 ]

5 голосов
/ 06 ноября 2011

Вам нужна форма с действием «1.php» и jQuery.

$('#form_id').submit(function(event){
    event.preventDefault();

    var $th = $(this);

    $.ajax({
        type: 'post',
        url: '2.php',  // note: edited by Ryan
        data: $th.serialize(),
        success: function(){
            $th.submit();
        }
    });
});
1 голос
/ 06 ноября 2011

Используя JavaScript, да

Вы можете сделать один вызов, используя функцию XMLHttpRequest , доступную в JavaScript, чтобы сделать AJAX-вызов скрипта php.2.Затем второй вызов может быть выполнен с использованием document.forms["FORMNAME"].submit().

Библиотеки, такие как AJAX-функции jQuery , упрощающие использование функции XMLHttpRequest.См. Документацию по функциям jquery.get (), jquery.post () и jquery.ajax () (aka $ .get (), $ .post () и $ .ajax ())

.несколько руководств по выполнению вызовов AJAX с использованием функций jQuery $ .post () и $ .ajax ().

Также приведен пример структуры того, как это можно кодировать:


    <form id="exampleform" name="exampleform" action="1.php">
    ...
    </form>
    <script type="text/javascript">
      function submitForm()
      {
        ... // set up vars for $.post() call

        // Make the post call for the 2.php
        $.post( ... );

        // Submit the form for 1.php
        document.forms["exampleform"].submit();
      }
    </script>

0 голосов
/ 06 ноября 2011

Все вышеупомянутое решение должно работать, но помните, что ajax допускается только в том же домене. Это означает, что вы находитесь на http://example.com,, вы можете публиковать сообщения только на example.com/etc или sub.example.com.
Если вы действительно хотите создать кросс-доменную публикацию, вы должны создать пустой ifram в качестве цели (id = "iframeid"), а затем изменить цель формы на нее:

<form target="_iframeid" action=""/>

После этого вы можете использовать javascript для публикации на одной странице, а затем изменить URL-адрес действия и повторить репост

0 голосов
/ 06 ноября 2011

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

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