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, время: 04:49. |