|
|
|
|
<? include_once('db.php');
$number = 1412;
function checkEmail($email){
if(!eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email))
return FALSE;
}
function Send(){
$errors = array();
if ($_POST['number'] !== $number) {
$errors[]='Неправильный проверочный код';
}
if (!isset($_POST['name']) && empty($_POST['name']) && !strlen($_POST['name']) >= 3)
$errors[]='Укажите имя';
if (!isset($_POST['email']) && empty($_POST['email']) && checkEmail($_POST['email']) == false)
$errors[]='Неправильный Email адрес';
if (!isset($_POST['message']) && empty($_POST['message']) && !strlen($_POST['name']) >= 10)
$errors[]='Введите сообщение';
if (count($errors) == 0) {
$query = mysql_query('INSERT into reviews (name,email,message,time) VALUES("'.mysql_escape_string($_POST['name']).
'","'.mysql_escape_string($_POST['email']).
'","'.mysql_escape_string($_POST['message']).
'","'.time().'")');
$errors[]='Мы приняли Ваше сообщение. Спасибо!';
echo json_encode($errors);
} else {
echo json_encode($errors);
}
}
if (isset($_POST['send'])) {
unset($_POST['send']);
Send();
}
?>
|
AJAX
<script>
$(function() {
$("div.form #send").click(function() {
var data = {};
data.name = $('#name').val();
data.email = $('#email').val();
data.message = $('#message').val();
data.number = $('#number').val();
$.ajax({
type: 'POST',
url: 'send.php',
dataType : 'json',
data: data,
success: function(data){
$.each(data, function(key, value){
$('div.form .message').append(value);
});
}
});
});
});
</script>
|
Проблема в том, что ничего не приходит от php, т-е не срабатывает echo | |
|
|
|
|
|
|
|
для: OLi
(18.11.2012 в 01:59)
| | А вы разве отправляете на сервер переменную "send"?
И проще - data: $("form").serializeArray() | |
|
|
|
|
|
|
|
для: confirm
(18.11.2012 в 07:13)
| | Сделал, но даже так:
if (isset($_POST['send'])) {
echo 'fdgdg'; die();
unset($_POST['send']);
Send();
}
|
В data null | |
|
|
|
|
|
|
|
для: OLi
(18.11.2012 в 13:23)
| | Ничего вы не сделали, так как вы создаете объект (отправляемые ключи-значения), в котором свойства send нет, а на сервере проверяете этот ключ. Метод serialiseArray() также не передает на сервер кнопок отправки формы, то есть submit, button. | |
|
|
|
|
|
|
|
для: confirm
(18.11.2012 в 13:48)
| | Да - спасибо - не знал, что serialiseArray() не передает на сервер кнопок | |
|
|
|
|
|
|
|
для: OLi
(18.11.2012 в 14:07)
| | Я не правильно выразился, этот метод вообще ничего не передает, просто в возвращаемом им объекте такие элементы формы будут отсутствовать, следовательно Ajax на сервер их не передаст. | |
|
|
|