
21.10.2014, 15:21
|
Кандидат Javascript-наук
|
|
Регистрация: 19.05.2013
Сообщений: 144
|
|
Отправка формы
Привет, возникли трудности понимания, сообщения всё отправляется при помощи ajax но не выскакивает окно при успешной передачи
$.ajax({
type: "post",
dataType: "json",
url: 'send.php',
data: {
phone: $phone, fio: $fio, adres: $adres
},
success: function(response) {
if(response.status == 'OK')
$response.parent().html(response.msg);
else if(response.status == 'error')
$response.text(response.msg);
}
});
Интересует
if(response.status == 'OK')
$response.parent().html(response.msg);
else if(response.status == 'error')
я так понял нужно в send.php прописать какой ответ будет например текст, если отправили, только не совсем понял что именно нужно прописать?
|
|

21.10.2014, 15:45
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,267
|
|
Сообщение от soltx
|
только не совсем понял что именно нужно прописать?
|
Как вариант...
{
status: 'OK'
}
|
|

21.10.2014, 15:45
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
$response = array('status'=>'OK', 'msg' => 'Тут месага');
header('Content-Type: application/json');
echo json_encode($response);
Только обычно вместо status:'ok'/'error' используют success:true/false
__________________
В личку только с интересными предложениями
|
|

21.10.2014, 15:50
|
Кандидат Javascript-наук
|
|
Регистрация: 19.05.2013
Сообщений: 144
|
|
Сообщение от ksa
|
Как вариант...
{
status: 'OK'
}
|
мне нужно сообщение вывести например "Отправлено"
сделал так, результатов не принесло
if(response.status == 'OK')
{
status: 'OK';
}
|
|

21.10.2014, 15:51
|
Кандидат Javascript-наук
|
|
Регистрация: 19.05.2013
Сообщений: 144
|
|
Сообщение от danik.js
|
$response = array('status'=>'OK', 'msg' => 'Тут месага');
header('Content-Type: application/json');
echo json_encode($response);
Только обычно вместо status:'ok'/'error' используют success:true/false
|
спс
только в самом send.php не совсем понял где вывести Content-Type и echo
<?php
//Retrieve form data.
//GET - user submitted data using AJAX
//POST - in case user does not support javascript, we'll use POST instead
$fio = ($_GET['fio']) ? $_GET['fio'] : $_POST['fio'];
$phone = ($_GET['phone']) ?$_GET['phone'] : $_POST['phone'];
$adres = ($_GET['adres']) ?$_GET['adres'] : $_POST['adres'];
$response = array('status'=>'OK', 'msg' => 'Тут месага');
header('Content-Type: application/json');
echo json_encode($response);
//flag to indicate which method it uses. If POST set it to 1
if ($_POST) $post=1;
//Simple server side validation for POST data, of course, you should validate the email
//if the errors array is empty, send the mail
if (!$errors) {
//recipient
$to = 'Your Name <exampe@gmail.com>';
//sender
$from = $fio . ' <example@gmail.com>';
//subject and the html message
$subject = 'Comment from ' . $name;
$message = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<table>
<tr><td>Fio</td><td>' . $fio . '</td></tr>
<tr><td>Phone</td><td>' . $phone . '</td></tr>
<tr><td>Adres</td><td>' . $adres . '</td></tr>
</table>
</body>
</html>';
//send the mail
$result = sendmail($to, $subject, $message, $from);
//if POST was used, display the message straight away
if ($_POST) {
if ($result) echo 'Thank you! We have received your message.';
else echo 'Sorry, unexpected error. Please try again later';
//else if GET was used, return the boolean value so that
//ajax script can react accordingly
//1 means success, 0 means failed
} else {
echo $result;
}
//if the errors array has values
} else {
//display the errors message
for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>';
echo '<a href="/">Back</a>';
exit;
}
//Simple mail function with HTML header
function sendmail($to, $subject, $message, $from) {
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: ' . $from . "\r\n";
$result = mail($to,$subject,$message,$headers);
if ($result) return 1;
else return 0;
}
?>
Последний раз редактировалось soltx, 21.10.2014 в 15:58.
|
|

21.10.2014, 16:00
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,267
|
|
Сообщение от soltx
|
мне нужно сообщение вывести например "Отправлено"
|
Так тебе это нужно в ПХП файле или уже на клиенте в скрипте? 
|
|

21.10.2014, 16:08
|
Кандидат Javascript-наук
|
|
Регистрация: 19.05.2013
Сообщений: 144
|
|
в клиент скрипте человек вызвал форму если все удачно отправилось то вывелось сообщение "бла бла бла" в той же форме
|
|

21.10.2014, 16:09
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от soltx
|
if ($_POST) {
if ($result)
|
Вот твой результат отправки почты. Если $result == true, то почта ушла. Иначе не ушла.
Ты не добавил валидацию в свой файл. Видишь if (!$errors) - подразумевается что ты создал и заполнил (если есть ошибки) этот массив.
__________________
В личку только с интересными предложениями
|
|

21.10.2014, 16:16
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,267
|
|
Сообщение от soltx
|
в клиент скрипте человек вызвал форму если все удачно отправилось то вывелось сообщение "бла бла бла" в той же форме
|
Дык
$.ajax({
type: "post",
dataType: "json",
url: 'send.php',
data: {
phone: $phone, fio: $fio, adres: $adres
},
success: function(response) {
alert("бла бла бла");
}
});
|
|

21.10.2014, 16:27
|
Кандидат Javascript-наук
|
|
Регистрация: 19.05.2013
Сообщений: 144
|
|
Записал так не получилось, про проверку понял, сейчас условие если нет ошибок ушло, если есть отправить
if ($errors) {
if ($_POST) {
if ($result == false) {
$response = array('status'=>'error', 'msg' => 'Бла бла бла');
header('Content-Type: application/json');
echo json_encode($response);
}
}
/////////////////////////////////////////////////////////////////////////////////////////
// добавил не сработало
if ($_POST) {
if ($result == true) {
$response = array('status'=>'OK', 'msg' => 'Тут месага');
header('Content-Type: application/json');
echo json_encode($response);
}
|
|
|
|