![]() | |
| | #1 (permalink) |
| Varlığa izin veren boşluk Üyelik Tarihi: 04/2004 Yer: İstanbul
Mesaj: 2,824
|
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>
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 %>
__________________ Ceviz Viki | Vikipedi | VikiKitap | VikiKaynak | VikiSözlük | VikiSöz | Wikipedia | Wikibooks Enson 17/02/2005 19:53 tarihinde anov tarafından düzenlenmiştir.. |
| | |
| | #3 (permalink) |
| Varlığa izin veren boşluk Üyelik Tarihi: 04/2004 Yer: İstanbul
Mesaj: 2,824
|
onu süs için yaptım. Alt + s yapacaksın onun için. esasına gelirsek : Şimdiden bir problemini söyleyeyim sen yakalamadan ![]() POST dataları birbirinden & karakteri ile ayrıldığı için text kontrollerinin içine & girdiğimizde asp yanlış algılıyor bunu. bu problemi gideren bir versiyon hazırladım ama gelen veriyi nasıl kullanacağım konusunda fazla bir fikrim yok. ikinci versiyon şöyle çalışıyor : '<' + n + '>' + v + '<' + n + '>' n -> form.elements[i].name v -> form.elements[i].value asp den alırken de döngü ile değil direkt Request.Form diye alıyorum.
__________________ Ceviz Viki | Vikipedi | VikiKitap | VikiKaynak | VikiSözlük | VikiSöz | Wikipedia | Wikibooks |
| | |
| | #4 (permalink) |
| ... Üyelik Tarihi: 08/2004 Yer: İstanbul - Fatih
Mesaj: 259
|
kardesim onu gordum ve ilk denedigim sey o oldu. ama o hata degil bence, daha dogrusu yaptıgın ornek post un gonderimi ile ilgili oldugu icin bu hata sayılmaz. ama formdan gelen bilgileri kaydeden bir sayfa icin hata sayılırdı. |
| | |
| | #5 (permalink) |
| mingitaw Üyelik Tarihi: 06/2002
Mesaj: 6,109
| PHP Kodu: Enson 17/02/2005 16:51 tarihinde Mingitau tarafından düzenlenmiştir.. |
| | |
| | #6 (permalink) |
| ... Üyelik Tarihi: 08/2004 Yer: İstanbul - Fatih
Mesaj: 259
|
Bilgileri gonderirken bir filtreden gecirmek cozum olur sanırım. n = n.replace("&","%26").replace("=","%3d") v = v.replace("&","%26").replace("=","%3d") postRequest += n + '=' + v + '&'; Tabi bu bir tane bulur durur global olarak degistirmesi lazım fakat ben regexp bilmiyorum. |
| | |
| | #7 (permalink) |
| Varlığa izin veren boşluk Üyelik Tarihi: 04/2004 Yer: İstanbul
Mesaj: 2,824
|
arkadaşlar çok daha basit bir çözümü var. escape() fonksiyonu. işe yarıyor. postRequest += escape(n) + '=' + escape(v) + '&';//burada bir problem var. bu satırı o şekilde değiştirirseniz, ne Türkçe karakterde sorun çıkar (gerçi onu iso-8859-9 ile çözdük) ne de & = gibi karakterler de. buradan da sevineyim biraz ![]() yihhhhuuuu bu harika bir şey. çok seviyorum bu nesneyi.
__________________ Ceviz Viki | Vikipedi | VikiKitap | VikiKaynak | VikiSözlük | VikiSöz | Wikipedia | Wikibooks |
| | |
| | #9 (permalink) |
| Varlığa izin veren boşluk Üyelik Tarihi: 04/2004 Yer: İstanbul
Mesaj: 2,824
|
postRequest += escape(n) + '=' + escape(v) + '&';//burada bir problem var. bu satır halen problemli sanırım türkçe karakterleri elle tek tek değiştirmek gerekecek. türkçe karakterlerle problem yaşanıyor fikri olan var mı?
__________________ Ceviz Viki | Vikipedi | VikiKitap | VikiKaynak | VikiSözlük | VikiSöz | Wikipedia | Wikibooks |
| | |
| | #10 (permalink) |
| ... Üyelik Tarihi: 08/2004 Yer: İstanbul - Fatih
Mesaj: 259
|
Ya necat efendi o turkce karakterleri escape metodundan oluyor. n = n.replace("&","%26").replace("=","%3d") v = v.replace("&","%26").replace("=","%3d") postRequest += n + '=' + v + '&'; yerine boyle bir sey problemi tamamı ile cozer sanırım. |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Sayfa Yenilenmeden katmanları göstermek | MEHMET | Web Tasarım | 5 | 20/02/2007 16:16 |
| Sayfa yenilenmeden alınan bilgi otomatik olarak değişebilir mi | kitetnakre | PHP | 3 | 14/12/2006 13:12 |
| Sayfa yenilenmeden resmin gösterilmesi? | CaddeClub | Javascript / DHTML / Ajax | 18 | 23/07/2006 09:45 |
| XmlHttpRequest ve post sorunu. | PHYSiCaL_MeM | Javascript / DHTML / Ajax | 0 | 08/10/2005 19:46 |
| selectboxları sayfa yenilenmeden mysql'den gelen verilerle ilişkilendirmek? | v4mp1r3 | PHP | 8 | 31/05/2005 11:49 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |