1. sayfa
jQuery kullanmamakla hata yapıyorsun, $.post("a.php", { data1: "data1", data2: 54 }, function(data, textStatus, XMLHttpRequest) { işte bu kadar kolay bi kütüphane. Sorunsuz, uyumlu. |
Yukarıda bahsettiğim sorunla uğraşırken şöyle bir şeye rast geldim. Şimdi ben javascriptle yapmak istediğim oyla.php'ye get metodu ile pozitif olarak oylanacak mesajın id sini gönderme işini tarayıcıda adres çubuğunahttp://localhost/vit/oyla.php?pozitif=118 yazarak yolladım, neticede veritabanı üzerinde aynı işlemi yapması beklenir. Yok gene olmadı, İE'de sorun çıkarttı. Diğer bütün tarayıcılarda bunu girince veritabanında oy sayısı beklendiği gibi arttı. Ama İE'de olmadı. O zaman benim bu durumumda sorunun İE'nin javascript kodlarını doğru çalıştırmamasından değil, php sorgularını sorunlu göndermesinden kaynaklı olduğunu anladım sanırım. EasyPHP kullanıyordum. Bunun kurduğu APACHE'nin yapılandırması acaba İE den gelen sorgulamalarda sorun mu çıkartıyor. Böyle birşey başınıza geldi mi? Neyse ben şimdi hostgatordaki hostumda aynı scripti yükleyip ie'den çağıracam. Bakalım düzgün çalışırsa sorun benim bilgisayardaki sunucudadır. |
Hocam bu da PHP kullanmaya codeigniter kullanarak başlamak gibi olmaz mı? Önce dilin kendi yapısına hakim olup framework kullanımını sonra düşünmek daha mantıklı gibi geliyor. |
tercih meselesi tabi şu kodu incele, tüm browserlarda sorunsuz çalışır: Eyceks Scripti: function AJAX() { |
hocam şimdi ben bunu şöyle yapsam olur mu? benim kendi yazdığım şöyle bir fonksiyon var mesela: function pozitif_oyla(id) { var div = "div_oy_"+id var url = "oyla.php?pozitif="+id; ajaxRequest.open("GET", url, true); ajaxRequest.send(null); ajaxRequest.onreadystatechange = function() {//Call a function when the state changes. if(ajaxRequest.readyState == 4 && ajax.status == 200) { document.getElementById(div).innerHTML = ajaxRequest.responsetext } } } Şimdi ben bunu çağıran düğmeye basınca, benim yazdığım koda göre bu ajaxRequest adlı xmlhttprequest'i çağırarak işlemleri yapıyor değil mi? Sizin yazdığınız kodda, her çağrılan fonksiyon bir kez de AJAX(); fonksiyonunu çağırarak, ajax adlı bu nesneyi oluşturup onu kullanıyor değil mi yanlış anlamadıysam. Şunu da denedim, sizin verdiğiniz function AJAX() kısmını aldım, sonra ben de yazdığım fonksiyona onu çağıracak bir satır yazdım. Haliyle benim fonksiyonda ajaxRequest olan kısımları ajax ile değiştirdim. Budur değil mi yapılacak olan. Yok gene olmuyo. Bütün tarayıcılarda çalışıyor. IE'de olmuyor. Neyse yarın bütün kodları baştan gözden geçirerek tekrar deniyecem, verdiğiniz kodları da biraz daha inceleyecem bakalım. |
![]()
![]() Tamamdır evet, dediğiniz gibi hocam random sayı ekleyerek çağırınca işlem tamam oldu. Ama ben bu olayın AJAX katmanında değil de genel olarak olduğuunu düşünüyorum. Mesela tarayıcıya şunu yazdım: http://localhost/vit/oyla.php?pozitif=114 İlk seferde sorunsuz çalıştı, ama ikinici seferde ancak şöyle çalıştı: http://localhost/vit/oyla.php?pozitif=114&rand=21658 üçüncüde daha farklı bir rand sayısı yani her defasında farklı rand sayısı. tabi verdiğiniz kodda javascript bu sayıyı otomatik üretiyor. ama neticede araya javascript koymadan adres çubuğundan yazınca da IE aynı sayfayı çağırınca güncelleme problemi yaşatıyor. Bir de sehlor hocanın verdiği kodun function AJAX() kısmını alıp en üste yazdım ve kendi yazdığım her fonksiyonun başına da ajax = new AJAX(); yazınca tam oldu. Tabi bir de benim fonksiyon da ajaxRequest yazan yerleri ajax yaptım. Yardımlarınız için teşekkür ederim. |
merhabalar benim bi problemim var ama tam olarak ajaxtan fazla anlamıyorum sorunum internet explorer olanlarda çalışmıyor ama diğer browserlarda çalışıyor Ne ettiysem Birtürlü başaramadım internet explorer da çalıştırmayı yardımlarını bekliyorum kolay gelsin var veri=null; Sitemin Adresi ie lerde çalışmıyor :( Diğer Bowserlarda çalışıyor Lütfen Yardım edin Fazla Anlamıyorum Ajaxtan nedir bu browser sorunu http://www.ivm-alanya.com |
1. sayfa
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
ajaxRequest=new XMLHttpRequest();
}
else
{// code for IE
ajaxRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
Bu kodları W3C nin sitesinden aldım, bir hata olduğunu sanmıyorum. Bir de şunu denedim:
var ajaxRequest;
ajaxRequest = false;
// branch for native XMLHttpRequest object
if(window.XMLHttpRequest && !(window.ActiveXObject)) {
try {
ajaxRequest = new XMLHttpRequest();
} catch(e) {
ajaxRequest = false;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
ajaxRequest = false;
}
}
}
Bununla da IE açılınca sadece bir kere düzünce gösteriyor, sonra AJAX işlevlerine hiç tepki vermemeye başlıyor. Nerde hata yapıyor olabilirim?
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.