Удобный способ сделать это с помощью плагина vim filetype .
Это позволит вам разместить зависимые от типа файла конфигурации / сопоставления в отдельном файле (см., Например, мои .vim/ftplugin/gitcommit.vim
)
. ] и разместите там свои пользовательские конфигурации.
Лучший способ сделать это - сначала отправить форму в локальный скрипт, а затем использовать CURL для POST (отфильтрованных) данных, которые были получены в удаленный скрипт. Затем просто следите за ответом.
Затем просто отправьте электронное письмо и обработайте ответ удаленного сценария в своем локальном.
Вот что в итоге привело к отправке формы на несколько хостов с использованием одного действия.
Я опубликовал обычный почтовый скрипт, а затем добавил код для отправки на второй хост с помощью 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);
Самый простой способ сделать это - использовать 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 . Только их имя .
Мне просто нужно было сделать это с помощью 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"
При необходимости повторите процессы связывания для всех ваших скриптов,