Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2016, 16:31
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

Помогите отправить данные в php
Доброго времени суток, есть такой jquery:
// Form Submit
	{
		requestForm.on('submit', function(e){
			e.preventDefault();
			if(!fullNameValidate() && !phoneNumberValidate() && !emailValidate()){

				$('#request-demo').removeClass('success error');
				$('#request-demo').addClass('loading');

				$('html, body').animate({scrollTop: $('#request-demo').offset().top - 150}, 1000);
				var fullNameVal = $('#fullName').val();
				var phoneNumberVal = $('#phoneNumber').val();
				var emailVal = $('#email').val();
				var messageVal = $('#message').val();
				var dataString =	'fullNameVal=' + fullNameVal +
					'&jobTitleVal=' + jobTitleVal +
					'&organizationVal=' + organizationVal +
					'&phoneNumberVal=' + phoneNumberVal +
					'&emailVal=' + emailVal +
					'&messageVal=' + messageVal;
				var pushBulletString =	'Имя: ' + fullNameVal +
					'\nНомер телефона: ' + phoneNumberVal +
					'\nEmail: ' + emailVal +
					'\nСообщение: ' + messageVal;
				$.ajax({
					type: "POST",
					url: "./form.php",
					crossDomain: true,
					data: dataString,
					success: function(response) {
						if(response.state === 'success'){ // Request added
							$('.success-block .user-name').text(response.fullName);
							$('#request-demo').removeClass('loading');
							$('#request-demo').addClass('success');
							pushBullet(pushBulletString);
						}else if(response.state === 'requested'){ // User Already Requested
							$('.requested-block .user-name').text(response.fullName);
							$('.requested-block .email').text(response.email);
							$('#request-demo').removeClass('loading');
							$('#request-demo').addClass('requested');
						}else{ // Some kind of error
							$('#request-demo').removeClass('loading');
							$('#request-demo').addClass('error');
							setTimeout(function(){ $('#request-demo').removeClass('error'); }, 2000);
						}
						// setTimeout(function(){ $('#request-demo').removeClass('success'); }, 2000);
					},
					error: function(error){
						console.log(error);
						$('#request-demo').removeClass('loading');
						$('#request-demo').addClass('error');
						setTimeout(function(){ $('#request-demo').removeClass('error'); }, 2000);
					}
				});
			}
		})
	}

Но потерялся php файл который получает данные и отправляет на почту.
Помогите его правильно составить.
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2016, 16:43
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

Пробую вот такой php:
<?php
$addresses = array(
    'karakymg@gmail.com',
);
 
if (isset($_REQUEST['fullNameVal'])){
        $mess = $_REQUEST['messageVal'];
        $fname = $_REQUEST['fullNameVal'];
        $phone = $_REQUEST['phoneNumberVal'];
        $from = $_REQUEST['emailVal'];
        $send = "Здравствуйте меня зовут: ".$fname."\r\nПозвоните мне на номер: ".$phone."\r\nЯ оставил вам сообщение: ".$mess;
        $to= implode(', ', $addresses);
        $subject = "Заказ с сайта targo.in.ua";
        $headers = "From: $from\r\nReplay-To: $from\r\nContent-type: text/plain; charset=utf-8\r\n";
        mail($to, $subject, $send, $headers);
}
?>

но выдает ошибку.
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2016, 16:50
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 21.02.2010
Сообщений: 213

изначально url php файла стоял такой:
http://anastawfeek.com/itworxhub/process.php
но если туда зайти там отображается только эта строчка:
{"state":"fail","error":"More informations required."}{"state":"requested","firstName":"Shared","email":""}

Исходник к сожаленью не увидеть(
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2016, 01:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Бедлам в коде со строки 11 и по 20 можно спокойно выбрасывать и заменить на var dataString = this.serialize();, и на сервере оперировать ключами, которые есть имена полей формы.
Что это такое pushBullet(pushBulletString) и нужно ли не знаю.

crossDomain: true, это для кого? Отправка то на свой домен, каким боком нужен crossDomain?

$_REQUEST - это данные которые могут перекрываться GET, POST, COOKIE данными и в той последовательности, в которой они прописаны в конфигурации. Другими словами клиент может сделать произвольную подставу. Если вы контролируете процесс, ожидаете данные пришедшие методом POST, то и проверять нужно не $_REQUEST, а $_POST.

По самой отправке почты - тревожим Гугл, спрашивая "PHP отправка почты" и читаем как правильно оформляется почтовое отправление, ибо так как это у вас написано делать нельзя. При этом отправка может быть как функциями mail/mb_send_mail, так и SMTP.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите переделать функцию с js на PHP labzov Общие вопросы Javascript 1 14.02.2016 10:36
Как вернуть json данные из php Купэ AJAX и COMET 1 18.09.2013 05:23
Как вывести данные из PHP Sherminator Events/DOM/Window 2 07.08.2012 20:11
Помогите получить данные из select yuri-it Events/DOM/Window 7 03.06.2011 23:52
Помогите вытащить из таблицы данные... MD6 Общие вопросы Javascript 1 07.10.2008 13:03