AJAX ile bir form POST etmek, sonra da POST edilen değerleri kullanmak için uzun zamandır bir fonksiyon kullanmaktayım. Şimdiye kadar bir sorun çıkartmadığına göre buraya ekleyebilirim. Kod şu şekilde:
/**************************************************************************************
AJAX.createVals() (12.02.2005 / TM)
`f` formundaki değerleri XHR nesnesi ile POST edilebilecek formata dönüştürür.
Eğer formun içinde bir SELECT elemanı varsa, bunun hem değerini hem de TEXT kısmını
alır ve string olarak geri döner.
***************************************************************************************/
function createVals(f){
var oF = document.getElementById(f);
var eL = oF.elements;
var ts = "";
var rs = "";
var vA = new Array();
for (var lL=0;lL < oF.length;lL++) {
if((eL[lL].type==`text`) || (eL[lL].type==`hidden`) || (eL[lL].type==`password`) || (eL[lL].type==`textarea`) || (eL[lL].type==`select-one`)) {
if ((eL[lL].type==`select-one`)){
var c = eL[lL].options[eL[lL].selectedIndex].text;
var n = eL[lL].name + "_TEXT";
ts = escape(n)+`=`+escape(c.replace(/%2B/g,"%u002B"));
vA.push(ts);
var c = eL[lL].value;
var n = eL[lL].name;
ts = escape(n)+`=`+escape(c.replace(/%2B/g,"%u002B"));
vA.push(ts);
}
else{
var c = eL[lL].value;
var n = eL[lL].name;
ts = escape(n)+`=`+escape(c.replace(/%2B/g,"%u002B"));
vA.push(ts);
}
}
}
if (vA.length>0){
rs=vA.join("&");
}
return rs;
}
Bu fonksiyonu kullanarak XHR nesnenizin POST edeceği değerleri oluşturabilir, daha sonra sunucu tarafındaki dosyanızda da (ASP, ASPX, PHP neyse artık) eski yöntemlerle değerleri alabilirsiniz. Bu fonksiyondaki artı bir şey (açıklamasında da yazdığı gibi) formdaki SELECT elementlerinin TEXT değerlerini de alması ve bunu gönderilecek değerler arasına sıkıştırması. Buna bir iki projede ihtiyaç duymuştum. Nasıl kullanıldığına dair örneği de bir ara eklerim herhalde...
Devamı »