XMLHttpRequest harika bir nesne, onu çok seviyorum.
edit : son mesajlarda bahsettiğim değişiklikler kodların içinde ve zip dosyasında uygulandı. (escape, Response.Charset eklendi.) kodun içine escape eklememi hatırlatan Axion a teşekkür ediyorum.
Bu sabah güne bir google araması ile başladım.
dönen sonuçlardan 2-3 tanesi çok işe yaradı.
Kodun içinde yardımcı olanların (user9 bilmeden çok yardım etti bana

)
isimleri adresleri telefonları (şaka tabii telefon yok)
bulunuyor.
ben asp için deneme yaptım ama tabii ki client-side olduğu için
perl, php, zope,.... gibi dillerde de aynısı yapılabilir. (asp kodu 4 satır zaten)
DİKKAT : htm olduğuna bakıp dosyanın üzerine çift tıklamayınız.
Xmlhttprequest objesinin çalışması için onu webserver dan talep etmeniz gerekir. Kodu indirecekler için okubeni.txt de de bunu belirttim.
Kodlar :
(xmlhttp.htm)
Kod:
<!--11:15 17.02.2005
anov
mozilla ve ie de test edildi.
"made with notepad"
Yararlanılan kaynaklar :
google :-)
http://jibbering.com/2002/4/xmlhttp.js
(xmlhttp nesnesi döndüren fonksiyon 4 satır hariç buradan kopyadır.)
http://www.sitepoint.com/forums/showthread.php?p=1618991#post1618991
(user9 un kodu istekte (request) bulunurken header bilgilerini nasıl kuracağımı gösterdi.)
-->
<html>
<head><title>Sayfa yenilenmeden post yollamak ve yanıt almak.</title>
<script language="javascript">
//fonksiyonu ben yazdım, fakat garip bir şekilde sanki ingilizce isim vermek
//daha iyi olur gibi geliyor. bir de ilk harf küçük sonraki kelimenin ilk harfi büyük oluyor ya
//(camelCase)
// bunaBayılıyorum(":-)");
function sendPost(formId,spanId)//fonksiyonun xmlhttp kısımları user9 un kodlarından gelmedir.
{
var form = document.getElementById(formId);
var span = document.getElementById(spanId);
var postRequest = new String("");
var n,v;// n -> name , v -> value
//göndereceğimiz bilgiyi hazır edelim.
for(var i=0;i<form.elements.length;i++)
{
n = form.elements[i].name;
v = form.elements[i].value;
postRequest += escape(n) + '=' + escape(v) + '&';//artık problem yok :).
}
var xmlhttp = new_xmlhttp();/**alacaklı haciz koymuş bekire of offf*/
xmlhttp.open("POST","post.asp",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=iso-8859-9");
xmlhttp.send(postRequest);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
span.innerHTML = xmlhttp.responseText;
}
else
{
span.innerHTML = '<h1>Abi kusura bakma bir terslik oldu.</h1>';
}
}
return false;//formu yollama
}/**hadi gel köyümüze geri dönelim, fadime nin düğününde halay çekelim*/
// http://jibbering.com/2002/4/xmlhttp.js
function new_xmlhttp()
{
var xmlhttp;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp=false;
}
}
@else
xmlhttp=false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false;
}
}
return xmlhttp;
}
</script>
</head>
<body>
<form id="formOrnek" onsubmit="return sendPost(this.id,'spanTest')">
<ul>
<label for="textAd" accesskey="a"><u>A</u>d:</label>
<input type="text" id="textAd" name="textAd"/><br/>
<label for="textSoyad" accesskey="s"><u>S</u>oyad :</label>
<input type="text" id="textSoyad" name="textSoyad"/><br/>
<input type="submit" value="Gönder"/>
</ul>
</form>
<hr/>
<span id="spanTest"></span>
</body>
</html>
(post.asp)
Kod:
<%
Response.Charset = "iso-8859-9"
Dim i
For i=1 To Request.Form.Count
Response.Write(Request.Form.Key(i) & " = " & Request.Form.Item(i) & "<br/>")
Next
%>