2015-10-27 2 views
0

Может кто-то мне помочь. Моя функция успеха не работает. Beforesend работает, и я проверил переменную s. Это верно перед ajax, поэтому все проверки правильны. Пожалуйста, посмотрите ..Функция успеха Ajax, похоже, не работает

function enquiry_validations() { 
    if (s) { 
     var url = "http://localhost:9080/c/wp-content/themes/aussie/mailer.php"; 
     jQuery.ajax({ 
      type: "POST", 
      url: url, 
      data: "property_type=" + property_type + "&bedrooms=" + bedroom + "&bathroom=" + bathroom + "&condition=" + condition + "&est_size=" + est + "&parking=" + packing + "&special_feature=" + spl_fet + "&other=" + oth + "&unit_no=" + unt_no + "&street_no=" + street_no + "&street_name=" + street_name + "&studio=" + suburb + "&State=" + state + "&relation=" + relationship + "&purpose=" + purpose + "&cell=" + time_to_cell + "&currently_listed_n=" + currently_listed + "&first_name=" + first_name + "&sur_name=" + last_name + "&telephone=" + telephone + "&email=" + email, 

      error: function (data) { 
       console.log(data); 

      }, 
      beforeSend: function() { 
       console.log('happeneing'); 
       jQuery('#ajax-loader').show(); 
       jQuery('#ajax-loader').html('<img src="http://localhost:9080/c/wp-content/themes/aussie/images/ajax-loader.gif">'); 
      }, 
      success: function (result) { 
       jQuery('#ajax-loader').hide(); 
       console.log(result); 

       if (result == '0') { 
        console.log("No Result") 
       } 
       if (result == '1') { 
        jQuery.fancybox('<div class="aussi-en-pop"><h3>Thank you for using Northern Property Reports.</h3> <p>Your Northern Reports representative is busy getting your Property Report ready and will be in touch within 48 hours with your free report. <br> All enquiries please email : <a href="mailto:[email protected]">[email protected]</a></p></div>'); 
        jQuery("#Property_type").val(''); 
        jQuery('#bedrooms').val(''); 
        jQuery('#bathrooms').val(''); 
        jQuery('#condition').val(''); 
        jQuery('#est').val(''); 
        jQuery('#parking').val(''); 
        jQuery("input[type='checkbox']#chk:checked").prop('checked', false); 
        jQuery('#oth').val(''); 
        jQuery('#un_no').val(''); 
        jQuery('#Street_no').val(''); 
        jQuery('#street_name').val(''); 
        jQuery('#suburb').val(''); 
        jQuery('#state').val(''); 
        jQuery('#relationship_to_Property').val(''); 
        jQuery('#purpose_of_request').val(''); 
        jQuery('#time_to_sell').val(''); 
        jQuery("input[type='radio']:checked").prop('checked', false);; 
        jQuery('#first_name').val(''); 
        jQuery('#last_name').val(''); 
        jQuery('#telephone').val(''); 
        jQuery('#email').val(''); 
        jQuery('#confirm_email').val(''); 
        jQuery("input[type='checkbox']#agree:checked").prop('checked', false); 
        console.log("YES Result") 
       } 
      } 
     }); 
    } 
} 
+3

Что не работает? Есть ли сообщения об ошибках? Что вы ожидаете и что на самом деле происходит? – Jasen

+0

Открытые инструменты разработчика (с использованием браузера w/e), перейдите на вкладку «Сеть», обновите страницу, запустите свою функцию и отправьте код ответа этого запроса. Это 200 или что-то еще? – dchayka

+0

Thankyou очень подходит для ответа. Проблема, с которой я столкнулся, заключается в том, что ajax выполняется до отправки, но функция успеха не выполняется. Я знаю это, потому что вижу console.log ('happeneing'); в инструментах разработчика, но я не вижу console.log (результат); Нет ошибки, так как функция ошибки не показывает никаких ошибок. На вкладке «Сети» я вижу XML-данные, обрабатываемые именем mailer.php .. –

ответ

1

Возможно размещение вашего PHP скрипт будет лучше помочь нам понять проблему, но, для начала ...

Я заметил это:

data: "property_type=" + property_type + "&bedrooms=" + bedroom + "&bathroom=" + bathroom + "&condition=" + condition + "&est_size=" + est + "&parking=" + packing + "&special_feature=" + spl_fet + "&other=" + oth + "&unit_no=" + unt_no + "&street_no=" + street_no + "&street_name=" + street_name + "&studio=" + suburb + "&State=" + state + "&relation=" + relationship + "&purpose=" + purpose + "&cell=" + time_to_cell + "&currently_listed_n=" + currently_listed + "&first_name=" + first_name + "&sur_name=" + last_name + "&telephone=" + telephone + "&email=" + email, 

Могу предложить:

data: { 
     'data': { 
      'property_type': property_type, 
      'bedrooms': bedroom, 
      'bathroom': bathroom, 
      'condition': condition 
     } 
}, 

И на скрипте PHP:

<?php 
    $data = array(); 
    $response = array(); 

    if(isset($_POST['data']) { 
     $data = $_POST['data']; 
     $response['code'] = "200"; 
     $response['message'] = "Hi! The property type is " . $data['property_type']; 
    } 

    echo json_encode($response); 

И на вашей success функции:

success: function(response) { 
    if(response.message) { 
     console.log(response.message); 
    } 
} 

Кроме того, из jQuery.ajax() API documentation

Deprecation Уведомление: The jqXHR.success(), jqXHR.error() и jqXHR.complete() callbacks устарели от jQuery 1.8. Для того, чтобы подготовить свой код для их последующего удаления используйте jqXHR.done(), jqXHR.fail() и jqXHR.always() вместо этого.

0
data: {"property_type": property_type , 
      "bedrooms": bedroom, 
      "bathroom" : bathroom , 
      "condition" : condition , 
      "est_size" : est , 
      "parking" : packing , 
      "special_feature" : spl_fet , 
      "other" : oth , 
      "unit_no" : unt_no , 
      "street_no" : street_no , 
      "street_name" : street_name , 
      "studio" : suburb , 
      "State" : state , 
      "relation" : relationship , 
      "purpose" : purpose , 
      "cell" : time_to_cell , 
      "currently_listed_n" : currently_listed , 
      "first_name" : first_name , 
      "sur_name" : last_name , 
      "telephone" : telephone , 
      "email" : email} 

Используйте этот формат для отправки или передать данные из JQuery

Смежные вопросы