2011-05-08 31 views
7

jquery/ajax kullanarak yaklaşık 10 giriş içeren bir form göndermek istiyorum, ancak ajax.show veri dizisi ile veriyi nasıl iletebilirim bilmiyorum Onları?jquery/ajax ile form gönderiminde veri aktarımı

+0

ile ilgili olabilir. ASP.NET, PHP? Veriyi geçirdiğiniz sunucu JSON verisini beklemek mi yoksa sadece bir anahtar değer çiftleri dizisi mi bekliyor? – Dve

+0

Bir form göndererek, tüm alanlarının otomatik olarak gönderildiğini düşünüyorum. –

+0

@Dve: PHP kullanıyorum. –

cevap

14

jQuery.serialize sizin için yararlı olabilir. Göndermek istediğiniz formun tüm alanları için name özelliğini kullanmanız önemlidir. İlgili kod, aşağıdaki

$("form#myFormId").submit(function() { 
    var mydata = $("form#myFormId").serialize(); 
    console.log(mydata); // it's only for test 
    $.ajax({ 
     type: "POST", 
     url: "myUrlToPostData.php", 
     data: mydata, 
     success: function(response, textStatus, xhr) { 
      console.log("success"); 
     }, 
     error: function(xhr, textStatus, errorThrown) { 
      console.log("error"); 
     } 
    }); 
    return false; 
}); 
+0

html çıkışı nerede? –

+0

@phpPluginMaster: Ne demek istediğinden emin değilim. 'submit' olay işleyicisi 'false' döndürür, bu yüzden göndererek yeniden yönlendirme yoktur. Biri sadece formun verilerini sunucuya gönderir. 'Success' geri çağrısının 'response' parametresi isteğe bağlı olarak sunucudan döndürülen verilere sahip olabilir (' url: "myUrlToPostData.php" '). – Oleg

+0

Eğer ajax kullanıyorsanız, normalde başarı ile bir şey çıkarmak istersiniz. Ben konsol.log –

3
$.ajax({ 
type: "POST", 
url: "handle.php", 
data: "n="+name+"&e="+email, 
success: function() { 
alert('It worked'); 
} 
}); 

İşte bunu kullanmanın en kolay yolu. Bu sadece iki post değişkenini, $ _POST ['n'] ve $ _POST ['e'], handle.php'ye gönderir. senin ajax bir işlev çağrıldığında gönderme (ise Formunuz) şu şekilde görünecektir:

<form id="form" onsubmit="send(this.name.value, this.email.value); return false;"> 
+0

Teşekkür ederim, ama ben sunucuya göndermek için 10 giriş alanları var ve veri dizesi yapmak için onları ayırmak düşünüyorum uzun string.i PHP oluşturmak. –

+0

IE için en azından POST verilerinin üstbilgiden geçirildiği gibi bir sınırı yoktur. Bu dizeleri değişken olarak referans alacağınız için, sunucu veya PHP/JavaScript tarafından sınırlandırılmadığı sürece dizenin uzunluğunu bile fark etmeyeceksiniz. "Ancak, POST yöntemi, ad/değer çiftlerini göndermek için URL'nin boyutuyla sınırlı değildir. Bu çiftler, üstbilgide değil, URL'de aktarılır." Kimden: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q208427 –

+1

serialize() daha iyi bir seçenektir. Bu, yalnızca belirli verileri göndermek istediğinizde çalışır. –

İlgili konular