2009-01-08 24 views
49

Bu, birkaç satırdan daha fazla kod gerektirmeden jQuery'ye yerleşik bir şey olmalı gibi görünüyor, ancak "basit" çözümü bulamıyorum. Birisi seçme alanını değiştirdiğindeAJAX ve jQuery kullanarak formu gönderin

<form method="get" action="page.html"> 
    <input type="hidden" name="field1" value="value1" /> 
    <input type="hidden" name="field2" value="value2" /> 
    <select name="status"> 
     <option value=""></option> 
     <option value="good">Good</option> 
     <option value="bad">Bad</option> 
    </select> 
</form> 

, ben veritabanını güncellemek için ajax kullanarak formu göndermek istiyorum: Demek, bir HTML formu var. Ben eksik

$("select").change(function(){ 
    $.get("page.html?" + serializeForm()); 
}); 

: Onlara sadece gibi tüm, gönderebilir elle değerler/özelliklerini yaratmadan aşağıdakileri yapmak için bir yolu var olacağını düşündüm?

+1

Re: güncelleme, Muhtemelen verilerin sunucuya geçirilmesinin ediyoruz çünkü bu bir GET isteği olmak istemiyorum. Ama evet, bu genel bir fikir. Hoşgeldin :) – rfunduk

+1

Sunucuda işlem yapabilmek için veri yolladım http://tryconcepts.blogspot.in/2012/02/post-form-data-using-jquery-post-or.html – yashpal

cevap

10

Bu, işe yaramadı.

$("select").change(function(){ 
    $.get("/page.html?" + $(this).parent("form").find(":input").serialize()); 
}); 
29

Bir HTML formu uyumsuz olarak göndermenizi sağlayan güzel bir form plugin var.

$(document).ready(function() { 
    var form = $('#my_awesome_form'); 

    form.find('select:first').change(function() { 
    $.ajax({ 
     type: "POST", 
     url: form.attr('action'), 
     data: form.serialize(), 
     success: function(response) { 
     console.log(response); 
     } 
    }); 
    }); 

}); 

Yani bu kod .serialize() kullanır:

$(document).ready(function() { 
    $('#myForm1').ajaxForm(); 
}); 

veya

$("select").change(function(){ 
    $('#myForm1').ajaxSubmit(); 
}); 

sonra böyle bir kodu kullanın formu bir id niteliğini vermek formu hemen

+0

Teşekkürler ! Bu eklenti harika! – Rich

133

İlk göndermek için İlgili verileri formdan çıkarmak. Ayrıca, ilgilendiğiniz seçimlerin formdaki ilk olduğunu varsayar.

İleride referans olması için jQuery docs çok iyi.

+7

Çok ama çok açık bir nokta, bu kesinlikle benim için ve bu konudaki diğer tüm SO mesajlarında ihmal edilen benim için kesinlikle öyle değildi ki başarılı olmak için kullandığınız düğmeyi sağlamalısınız formun ajax yoluyla gönderilmesine neden olan olayı tetiklemek için IS NOT yazın! Aksi takdirde bu her zaman başarısız olur. Serileştirme yaklaşımı düzgün. – codepuppy

+8

Bu kod, seçili bir kutunun değiştirilmesinde formun işlenmesini sağladığından, formda 'yazmanızın önemi yoktur. Formda bir gönder düğmesi varsa, formda 'submit' olayını işlemek ve varsayılan eylemi engellemeniz yeterlidir. Bir kez daha [docs] (http://api.jquery.com/submit/) bu konuda kurtarmaya geldi :) – rfunduk

+0

Güzel Çözüm .. Teşekkürler – JEMI