2016-04-06 10 views
1

ajax için çok yeni.Çeşitli değişkenleri ajax formuna geri döndürme POST başarısı jQuery değişkenleri olarak

Burada yapmaya çalıştığım şey, bir HTML form verilerini MySql db tablosuna işlemek için yazdığım bir PHP dosyasından bazı değişkenleri geri getiren . Bazı araştırmalardan sonra json'u kullanmam gerektiğine karar verdim (ilk kez) ve ajax'a dataType:'json' parçasını eklemeliyim.

Sorunum, bu bölümü ekledikten sonra, formu gönderemem!

Burada yanlış olanları neden bildiririm? Sadece PHP kodunu işlemek ve belirtilen üç değişkeni jquery değişkenine döndürmem gerekiyor, böylece onlarla bir şeyler yapabilirim.

Önceden teşekkür ederiz.

AJAX:

var form = $('#contact-form'); 


var formMessages = $('#form-messages'); 


form.submit(function(event) { 

     event.preventDefault(); 

     var formData = form.serialize(); 

     $.ajax({ 
      type:  'POST', 
      url:  form.attr('action'), 
      data:  formData, 
      dataType: 'json', //after adding this part, can't anymore submit the form 
      success: function(data){ 

       var message_status = data.message_status; 
       var duplicate  = data.duplicate; 
       var number   = data.ref_number; 
       //Do other stuff here 
       alert(number+duplicate+number); 

      } 
     }) 
}); 

PHP

//other code here 

$arr = array(
    'message_status'=>$message_status, 
    'duplicate'=>$duplicate, 
    'ref_number'=>$ref_number 
); 
echo json_encode($arr); 

cevap

0

form yöntemi yanlış belirtilen adres yolu.

method:  'POST', 

için

type:  'POST', 

değiştirmek Ve denemek için bir şans . Cevabınızı kaydedip buradan postalayabilir misiniz? Ayrıca, herhangi bir hata için konsolunuzu kontrol edin.

0

Eğer dataType json ise, Json nesnesini göndermelisiniz. Ancak, form.serialize() size Url kodlu veri verir. (ve işareti ayrılmış). Difference between serialize and serializeObject jquery

:

$.fn.serializeObject = function() 
{ 
    var o = {}; 
    var a = this.serializeArray(); 
    $.each(a, function() { 
     if (o[this.name]) { 
      if (!o[this.name].push) { 
       o[this.name] = [o[this.name]]; 
      } 
      o[this.name].push(this.value || ''); 
     } else { 
      o[this.name] = this.value || ''; 
     } 
    }); 
    return o; 
}; 

Kredi gider: Burada

ekleyebilir uzatma fonksiyonudur:

Sen json nesnesi olarak verileri hazırlamak zorunda

İlgili konular