Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   ajax отправка данных на стороний файл php (https://javascript.ru/forum/jquery/46208-ajax-otpravka-dannykh-na-storonijj-fajjl-php.html)

ufaclub 01.04.2014 23:19

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 );

spbsprut 02.04.2014 01:41

именно на другом доммене?

Вообще насколько я знаю/помню кроссдоменный запрос jquery может теоретически и сработать, но так писать нельзя если запрос нужно слать на другой домен это надо делать с сервера например используя библиотеку CURL

mi.rafaylik 05.04.2014 13:51

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