2015-05-07 2 views
0

Существует контактная форма и кнопка отправки. (позже я попытаюсь выяснить, как отправить эти данные контактной формы по почте)Отправить ajax data serialize to php

В настоящее время мне нужно получить данные в php-скрипт .... Как переадресовать данные ajax json на php скрипт? Сейчас я просто хочу, чтобы отобразить с помощью эха-данные форм контакта, отправляемые через AJAX ...

Вот полный Javascript функции, которая вызывается, когда кнопка отправки нажато:

function modalForm(){ 
     $('.enquiryForm form').submit(function(e){ 
      e.preventDefault(); 
      change_tock(); 
      console.log("evo ga"); 
      $('.enquiryForm .status').html(''); 
      $('#singlePageBox .modal-footer').html(''); 
      var eForm = $(this), 
       formData = { 
        action: eForm.attr('action'), 
        method: eForm.attr('method') 
       }, 
      mandatoryFieldNames = 'c_phone,c_email' 
      ; 

      mandatoryFieldNames = $.map(mandatoryFieldNames.split(','), $.trim); 
      var formFields = eForm.find('input[required], textarea[required]'); 
      var emptyFields = 0; 
      formFields.each(function(i,v) { 
       var item = $(this) 
       ; 
       if(!item.val()) { 
        if($.inArray(item.attr('name').trim() , mandatoryFieldNames) != -1) { 
         item.addClass('empty_field'); 
         emptyFields++; 
        } 
       } else{ 
        item.removeClass('empty_field'); 
       } 
      }); 
      if(emptyFields !== 0) return false; 
      globalDebug !== 0 && console.log(formData, eForm); 
      $.ajax({ 
       type: 'post',//formData.method//, 
       dataType:'json', 
       url: 'slanje_poruke.php',//formData.action, 
       cache: false, 
       timeout: 50000, 
       data: eForm.serialize()+'&sent_from='+window.location.hostname 
      }) 
      .success(function (jqXHR, textStatus){ 
       $('.enquiryForm form').hide(); 
       $('.enquiryForm .status').append('<div class="alert alert-success">'+jqXHR.responseText+'</div>'); 
       $('#singlePageBox .modal-footer').html('<div class="alert alert-success">'+jqXHR.responseText+'</div>'); 
       globalDebug !== 0 && console.log(jqXHR, textStatus); 
      }).done(function (result) { 
       globalDebug !== 0 && console.log(result); 
      }) 
      .fail(function (jqXHR, textStatus) { 
       $('.enquiryForm .status').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>'); 
       $('#singlePageBox .modal-footer').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>'); 
       globalDebug !== 0 && console.log(jqXHR, textStatus); 
      }) 
      ; 
      return false; 
     }); 
     return false; 
    } 

а вот простое содержание PHP slanje_poruke.php файла:

<?php 
    $ref = $_POST['c_ref']; 
    $url = $_POST['c_url']; 
    $remotepagenum = $_POST['remotePageNumber']; 
    $name = $_POST['c_name']; 
    $email = $_POST['c_email']; 
    $phone = $_POST['c_phone']; 
    $message = $_POST['c_message']; 
    $sent_from = $_POST['sent_from']; 



echo "<script type='text/javascript'>console.log(' ".$email." ');</script>"; 

?> 

Теперь, когда я нажимаю кнопку отправки, ничего не происходит, появляется только сообщение журнала консоли («ево га»), который я поставил как испытание когда эта функция начинается ... но ничего не отображается f rom php-файл ....

Как заставить php-скрипт принимать данные, отправленные из ajax? Спасибо!

+0

Почему вы считаете, что данные будут находиться в '$ _POST ['eForm']'? Вы должны получить '$ _POST [*]', где имя каждого введенного вами ввода в вашей форме (плюс одно дополнительное поле, которое вы добавляете к строке запроса) будет иметь место '*'. Просто попробуйте 'var_dump ($ _ POST);' чтобы увидеть, что действительно отправляется. –

+0

теперь говорит: Uncaught TypeError: Не могу прочитать свойство responseText из null – Volkan

+0

Я изменил файл php .... теперь, когда я нажимаю кнопку submit, я получаю два раза сообщение, написанное в console.log, и сообщение об ошибке в кнопке отправки. .. – Volkan

ответ

0

Чтобы получить содержимое формы, выполните сериализацию с помощью метода jQuery serialize(). Это преобразует содержимое формы в строку запроса, которую вы можете просто отправить данные, а $ _POST будет содержать все ваши данные формы.