ajax отправка данных на стороний файл php
<form id="myForm" action="http://site.com/send.php" method="post"> <input id="name" type="text" name="name" /> <input id="email" type="text" name="email" /> <input id="phone1" type="text" name="phone" /> <input type="submit" value="Отправить заявку" /> </form> Помогите написать скрипт на Jquery. Пользовался раньше плагином jquery.form.min.js но он выполняет только отварку если файл который принимает пост данные лежит в корне того же сайта. (а если отправлять данные на файл который на другом доммене - то он отправляет но не выполняет условия которые нужно делать после того как отправились данные) мне нужно что типа отправить значение input#name, input#email, input#phone1 на файл который лежит по адресу http://site.com/send.php и если передача удалась то выполнить ряд условий
$("#predlojenie").css({"display" : "none"});
$("#imessage").css({"display" : "block"});
$("#popup ").css({"height" : "70px"});
setTimeout( function () { $('#close_popup').click(); }, 3000 );
|
именно на другом доммене?
Вообще насколько я знаю/помню кроссдоменный запрос jquery может теоретически и сработать, но так писать нельзя если запрос нужно слать на другой домен это надо делать с сервера например используя библиотеку CURL |
spbsprut дело пишет, вот пример подобной связки:
Делаем post-запрос к php-файлу sender.php (лежащем на Вашем сервере), в котором данные input-ов передаются в формате JSON. Собрать данные с полей формы можно по-разному (serialize, serializeArray), но в примере пропишем всё вручную для наглядности.
$.post('sender.php', {
$('#name').attr('name'):$('#name').val(),
$('#email').attr('name'):$('#email').val(),
$('#phone1').attr('name'):$('#phone1').val()
}, function(data){
// получаем ответные данные в объекте data и выполняем дальнейшие действия
});
Серверная часть - наш посредник sender.php передаёт данные php-файлу на другом домене, получает ответ и возвращает его в JS. $url = 'http://site.com/file.php'; $context = stream_context_create(array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($_POST), ) )); $response = file_get_contents($url, false, $context); echo $response; |
| Часовой пояс GMT +3, время: 21:53. |