Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ничего не возвращается ajax
 
 автор: OLi   (18.11.2012 в 01:59)   письмо автору
 
 

<?    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

  Ответить  
 
 автор: confirm   (18.11.2012 в 07:13)   письмо автору
 
   для: OLi   (18.11.2012 в 01:59)
 

А вы разве отправляете на сервер переменную "send"?
И проще - data: $("form").serializeArray()

  Ответить  
 
 автор: OLi   (18.11.2012 в 13:23)   письмо автору
 
   для: confirm   (18.11.2012 в 07:13)
 

Сделал, но даже так:

if (isset($_POST['send'])) {
        echo 'fdgdg'; die();
        unset($_POST['send']);
        Send();
    }

В data null

  Ответить  
 
 автор: confirm   (18.11.2012 в 13:48)   письмо автору
 
   для: OLi   (18.11.2012 в 13:23)
 

Ничего вы не сделали, так как вы создаете объект (отправляемые ключи-значения), в котором свойства send нет, а на сервере проверяете этот ключ. Метод serialiseArray() также не передает на сервер кнопок отправки формы, то есть submit, button.

  Ответить  
 
 автор: OLi   (18.11.2012 в 14:07)   письмо автору
 
   для: confirm   (18.11.2012 в 13:48)
 

Да - спасибо - не знал, что serialiseArray() не передает на сервер кнопок

  Ответить  
 
 автор: confirm   (18.11.2012 в 14:14)   письмо автору
 
   для: OLi   (18.11.2012 в 14:07)
 

Я не правильно выразился, этот метод вообще ничего не передает, просто в возвращаемом им объекте такие элементы формы будут отсутствовать, следовательно Ajax на сервер их не передаст.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования