Şimdi Ara

AJAX Problemi !!!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
16
Cevap
0
Favori
1.789
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar mrb. AJAX konusunda bir problemim var. Ancak burada yazmaya çalıştım olmadı. Baya karışık yani forumda yazıp anlatmam günümüz türkçesiyle imkansız . Bana özelden yardım edebilcek kimse var mı acaba?



  • ajax kullanımı günümüzde çok basittir. jquery kullanırsan günümüz türkçesi ile anlatabileceğin kadar basit kodlarla uğraşırsın. böylece forum amacına ulaşır
  • arkadaşlar problem şurada. AJAX kullanarak index.php sayfasının içerisinde <div id="icerik"></div> bu alanı çağırtıyorum bilgileri. Ama farklı sayfaları çağırtmıyorum. Tüm sayfalar ve kodlar index.php içerisine gömülü. Ayrıca php + MySQL ile de index.php içerisinde icerik alanına cagırtırken index.php?syf=1&katID=1 şeklinde veya index.php?syf=1&katID=5 şeklinde sayfalar çağırtıyorum. Anlıyacağınız herşeyi tek sayfada yapıyorum. Problem şurda bir tane lightbox ekledim index.php içerisine. Resimlere tıklayınca normal şekilde açıyor resmi. Yani javascript kodları etkin olmuyor index.php de. Problem biraz karışık o yüzden yazmayayım dedim. Başka bi amacım yok anlıcanız .Özelden yardım edebilcek kimse varmı?
  • özelden kastım msn falandı yani gördüğün gibi problem biraz karışık foruma yazacaktım da işte nasıl yazayım diye düşündüm. Bu arada zaten tüm js ajax ve css kodları index.php de. yani anlıcan tüm kodlar index.php de herşey index.php den yapılıyor. tek sayfa. ama problem şu ki <head></head> tagları arasında js ve css kodları yazmasına rağmen ajax ile cektigim sayfada js ve css kodları işlemiyor. Yani bir lightbox uygulaması yapamıyorum. Resme tıkladığında büyüyecek cinsten. Bende tek sayfa ve dediklerin zaten yaptım. tüm herşey head tagları arasında yazıyor. Tüm js ve css kodları. Senin dediğin mantıkta yapmayı deneyeceğim şimdi. Yani iki sayfa oluşturacagım bir tane html bir tane php. Bilgi için teşekkür ederim. Deniyorum...
  • Dostum zaten dediğin gibi yapmıştım ben. Ama senin dediğin gibi yaptım iki sayfa olarak yine olmadı. Ayrıca şunuda belirteyim. Örnegin iki tane sayfa var ürünler ve hakkımızda şeklinde. Önce ürünler sayfasının kaynak koduna bakıyorum, ajax ile hakkımızda sayfasını çağırdıgım zaman tekrar sayfanın kaynak koduna bakıyorum halen ürünler sayfasının kaynak kodlarını görüyorum. Bununla alakalı bir sıkıntı olabilir mi? Ama lightbox un tüm css ve js kodları ana sayfada head tagları arasında.



    < Bu mesaj bu kişi tarafından değiştirildi Külyutmaz -- 7 Şubat 2010; 4:27:51 >
  • javascript kodlarının çakışması mümkün elbette. bundan kurtulmak için hem ajax'ı hemde lightbox'ı jquery ile yap.
    böylece çakışmadan kurtulursun.

    örnek olarak
    ajax örneği
    lightbox ve benzerleri

    ligthbox'ın çalışmamasına sebep olarak lightbox kodlarının sayfadan sonra çağrılması sebep gösterilebilinir.
    bazı scriptler sizin html ile işaretlediğiniz(css rel gibi kodlarla) bilgileri bulup değiştirirler ve sistem bu değişiklikler sayesinde işler.
    bu durumda eğer sayfa script'den sonra yüklenirse (ajax ile) script'in istediği kısımlara müdahale etme şansı olmaz.
    dolayısıyla script'i tekrar yüklemeniz gerekir.


    jquery açısından bu işlem böyle bir koda tekabul eder.(lightbox'lı için)
     

    function sayfa_yukle(adres,veri) {

    $.ajax({
    type: 'GET',
    url: adres,
    data:veri,
    success: function(ajaxCevap) {
    $('.icerik').html(ajaxCevap);
    $('a[@rel*=lightbox]').lightBox();
    }
    });

    }




    kullanımı sayfa_yukle("index.php","id=1&ad=orcun&is=bosgezmek") şeklinde olacaktır

    edit: düzeltme



    < Bu mesaj bu kişi tarafından değiştirildi orcnd -- 7 Şubat 2010; 17:18:05 >




  • bir örnek yaptım. buradan izleyebilirsin
    alt kısımdaki linkden indirebilirsin.

    olay benim anlattığım gibi. lightbox script'i yüklendiğinde mevcut sayfada kendini ilgilendiren kısımları değiştirir. bu sayede çalışması mümkün olur.
    ajax gibi sonradan bir müdehale olursa müdehale sonucu oluşan kodlar lightbox'ın sayfa yüklemesindeki değiştirme işleminden mahrum kalır ve sıradan bir şekilde çalışır.

    çözüm ajax ile sayfa yüklendikten hemen sonra lightbox'ı tekrar çalıştırmaktır.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • Sn. orcnd uygulama için teşekkür ederim. jquery kullanmadan kendim yapim dedim ajax ama galiba yine dediğin gibi jquery kullanıcam. Örnek için tekrar teşekkür ederim.
    quote:

    Orijinalden alıntı: orcnd

    bir örnek yaptım. buradan izleyebilirsin
    alt kısımdaki linkden indirebilirsin.

    olay benim anlattığım gibi. lightbox script'i yüklendiğinde mevcut sayfada kendini ilgilendiren kısımları değiştirir. bu sayede çalışması mümkün olur.
    ajax gibi sonradan bir müdehale olursa müdehale sonucu oluşan kodlar lightbox'ın sayfa yüklemesindeki değiştirme işleminden mahrum kalır ve sıradan bir şekilde çalışır.

    çözüm ajax ile sayfa yüklendikten hemen sonra lightbox'ı tekrar çalıştırmaktır.




  • Arkadaşlar "sonlandırılmamış dize sabiti hatasını alıyorum" index.php de neden olabilir bu hata? sayfaları falan cagırıyor ve sayfaları acıyor resimleride açıyor ama ie falan cok kasıyor sol alt köşede de dediğim gibi hata var.
  • hata hangi satırda ve hangi browser'ın hangi versiyonlarında.

    chrome 4.0.249.78
    internet explorer 8
    firefox 3.6
    ve opera 10.10'da sorunsuz çalıştı
  • orcnd teşekkürler çalıştı ancak sayfa biraz kasıyor açılırken 9 tane resim var ayrıca sayfamda index.php?yer=1&syf=1 gibi değişkenlerle çagırıyorm veri tabanından verileri bunlar sayfalanıyor 1 2 3 diye sayfalanıyor. Bu sayfalar calısmıyor bunları nasıl calıstırcam?
  • $('a[@rel*=lightbox]').lightBox();
    kodunun hemen altına


    $('#icerik a').click(function() {
    if ($(this).attr('target')!="_blank" && $(this).attr('target')!="_parent" && $(this).attr('rel')!="lightbox") {
    sayfa_yukle($(this).attr('href'),"","#icerik");
    return false;
    }
    });


    eklersen ajax ile çağırdın sayfalardaki linklere hükmetmiş olursun. buradaki önemli nokta ise bazı linkler mevcut sayfa içinde açılmaz

    a tagının target özelliği bu konuda belirleyicidir. eğer target özelliği _self ise mevcut çerçeve içinde açılacak anlamını taşır.
    eğer _parent ise mevcut pencere içinde (çerçeveleri tanımaz kaldırır) açılacak anlamına gelir. blank ise yeni sayfa anlamındadır.

    yazdığım kod target özelliği _blank veya _parent olan linkleri etkilemiyor. ayrıca rel özelliği lightbox olanları da etkilemesin diye bir ekleme yaptım.

    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=37661611&url=deneme.html" data-href="deneme.html">deneme sayfası</a> bu tarz bir kullanımda işlemi jquery ajax kullanarak yapacaktır.

    edit:düzeltme



    < Bu mesaj bu kişi tarafından değiştirildi orcnd -- 7 Şubat 2010; 23:48:38 >




  • bu lightbox uygulamasını benim ajax kodlarımın arasına yerleştirsem çalışır mı?
  • gerekli şeyleri eklersen çalışır sanırım. ama garantisi yok. çakışma olabilir bunu bilemeyiz. deneme yanılma yapmak gerekli
  • Peki <form action="" method="post">.....<input type="submit" value="tamam"></form> bu şekilde bir tagı ajax kulllandığım bir sistemde kullanmam için action kısmına ne yazmam gerekli?
  • jquery'nin serialize fonksiyonu ile verileri alıp ajax ile göndereblirsiniz.

    örnek:
     
    function formbind() {
    $("form.ajaxform").submit(function() {
    var hedef=$(this).attr("target");
    $.ajax({
    type:$(this).attr("method"),
    url:$(this).attr("action"),
    data:$(this).serialize(),
    success: function(ajaxCevap) {
    if (hedef=="alertbox") {
    alert(ajaxCevap);
    }else{
    if (hedef) {
    $(hedef).html(ajaxCevap);
    }
    }
    }
    });
    return false;
    });
    }


    kullanımı özelleştirilebilinir elbette fakat ben birkaç ufak ekleme yaptım.
    öncelikle kullanırken hem sayfa yüklenişine formbind() şeklinde eklemek gerekli
    hemde ajax ile sayfa çağırdığımız sayfa yükle fonksiyonunun
    $(sonucid).html(ajaxCevap); ile ajax cevaplarını yazdırdığımız kısmın hemen altına eklemek gerekli

    böylece ajax ile yüklenen sayfalar ajax form özelliğinden faydalanabilir olacaklardır.

    form kullanımına gelince

    <form action="post.php" method="post" target=".icerik">
    ..........
    ......
    </form>

    action kısmı yine verilerin gönderileceği sayfa. method yine kendi işlevinde.

    target kısmı ise sonucun nerede gösterileceğini belirliyor. bu amaçla target özelliği alertbox yapıldığında
    mesaj kutusu ekranda beliriyor. bunun dışında girilen veriler doğrudan id veya class özelliği kabul edilip o kısımlara atılıyor.

    .icerik yazarsanız class'ı icerik olan yere atar. aynı şekilde #icerik yazarsanız id'si icerik olan yere atar.

    eğer target özelliği belirtmezseniz sonuc ekranda gözükmüyor.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.