Как к? Сообщение формы к нескольким местоположениям

Удобный способ сделать это с помощью плагина vim filetype .

Это позволит вам разместить зависимые от типа файла конфигурации / сопоставления в отдельном файле (см., Например, мои .vim/ftplugin/gitcommit.vim )

. ] и разместите там свои пользовательские конфигурации.

5
задан Charles 24 December 2012 в 21:25
поделиться

4 ответа

Лучший способ сделать это - сначала отправить форму в локальный скрипт, а затем использовать CURL для POST (отфильтрованных) данных, которые были получены в удаленный скрипт. Затем просто следите за ответом.

Затем просто отправьте электронное письмо и обработайте ответ удаленного сценария в своем локальном.

5
ответ дан 13 December 2019 в 22:11
поделиться

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

Я опубликовал обычный почтовый скрипт, а затем добавил код для отправки на второй хост с помощью Curl.

Ниже приведено фактический код, который работал с некоторыми незначительными изменениями, такими как отсутствие необходимости использовать 'extract'.

Найдено по адресу ( http://php.dzone.com/news/execute-http-post-using-php- cu ):

//extract data from the post
extract($_POST);

//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
                        'lname'=>urlencode($last_name),
                        'fname'=>urlencode($first_name),
                        'title'=>urlencode($title),
                        'company'=>urlencode($institution),
                        'age'=>urlencode($age),
                        'email'=>urlencode($email),
                        'phone'=>urlencode($phone)
                );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);
1
ответ дан 13 December 2019 в 22:11
поделиться

Самый простой способ сделать это - использовать jQuery для отправки $ .ajax (или $ .post или $ .get) каждому скрипту, получая результат каждого из них и делать то, что вы хотите, с результатами.

$(document).ready( function(){
    $('#mySubmitButton').click(function(){
        //Send data to the email script
        $.post( 'send-email.php', $('form').serialize(), function(data, textStatus) {
            //data is the result from the script
            alert(data);
        });

        //Send data to the other script
        $.post( 'my-other-script.php', $('form').serialize(), function(data, textStatus) {
            //data is the result from the script
            alert(data);
        });
    });
});

update: Команда сериализации - это данные, которые отправляются. Взгляните на функцию сериализации jQuery. По сути, он просто берет различные поля ввода, выделения, текстовые поля, флажки и т. Д. В вашей форме и помещает их в строку, подобную этой:

myNameInput = john & active = on & AnySelected = 3

Это просто строка имен элементов вашей формы. и их ценности. Это то, что отправляется внешнему скрипту с помощью команды ajax.

Примечание: при сериализации убедитесь, что все элементы вашей формы имеют атрибут name , а не только id . Сериализация не обращает никакого внимания на их id . Только их имя .

3
ответ дан 13 December 2019 в 22:11
поделиться

Мне просто нужно было сделать это с помощью ASP. Я хотел разместить форму в сценарии обработки электронной почты в одном домене и записать действие в базе данных MySQL в другом домене одним нажатием кнопки. Это также может быть полезно в любом количестве других ситуаций.

Невозможно иметь несколько ДЕЙСТВИЙ в определении HTML-формы. Итак, просто отправьте его в одно место, обработайте форму, а затем «повторно отправьте» форму в другое место. Сделать это можно в скриптовой «цепочке» любой длины.

Сначала добавьте эту подпрограмму ASP в свой сценарий. Если вы используете PHP или какой-либо другой язык, вы можете просто перевести этот код на свой язык, и концепция будет работать.

sub RePost( Destination )
    RePostString = "<HTML><BODY>" & vbCRLF
    if( (Trim(Destination) <> "") and (Request.ServerVariables("REQUEST_METHOD") = "POST") ) then
        RePostString = RePostString & "<FORM METHOD=POST NAME=""RePostForm"" ACTION=""" & Destination & """>" & vbCRLF
        for each Item in request.form
            if( not len(item) <= 0 ) Then
                RePostString = RePostString & "<INPUT TYPE=HIDDEN NAME=""" & item & """ VALUE=""" & Request.form( item ) & """>" & vbCRLF
            end if
        next
        RePostString = RePostString & "</FORM>" & vbCRLF & _
                       "<script language=""JavaScript"" type=""text/javascript""> window.onLoad = document.RePostForm.submit(); </script>"
    else
        RePostString = "<CENTER><H1><BR><BR>Sorry! Internal Scripting Error Encountered!</H1></CENTER>" & vbCRLF
    end if
    RePostString = RePostString & "</BODY></HTML>"
    Response.Write( RePostString )
end sub

Затем, в конце вашего процесса, просто завершите вызовом подпрограммы, например:

 RePost "http://www.SomeOtherDomain.com/SomeOtherScript.asp"

При необходимости повторите процессы связывания для всех ваших скриптов,

1
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: