AJAX çağrıları sonra çalıştırmak için javascript almak nasıl

5 Cevap php

Tamam, biraz önsöz: Bu AJAX gelir ve dinamik web şeyler ben hala bir acemi değilim. Benim sorunum aşağıda istendi ne benzer, ama bu tartışma bir çerçeve kullanarak düşünüyorum, ama ben değilim.

Potentially related post

İşte benim senaryo:

Bir şeklinde birkaç seçme elemanları vardır. Adlı ilk seçeneği tercih elemanları her zaman sayfa yükler doldurulur. Sonraki seçer için seçenek elemanları kullanıcı önceki seçin seçtiği ne bağlı kalabalık olsun. Yani bir zincir gibidir. Seçer de seçenekler sırayla bir veritabanındaki değerleri almak ve doldurmak için bir responseText inşa etmek için bir php dosyası dediğimiz AJAX fonksiyon çağrıları (sadece benim kendi javascript) yaparak doldurulur, sonraki her önceki seçin yapılan seçime dayalı seçmek. Umarım açıktır? Ince ve züppe çalıştığını hepsi.

Benim sorun burada başlıyor:

Kullanıcı formu gönderdiğinde, bir php dosya başarı ya da herhangi bir sorunları göstererek, verileri işlemek için çalıştırın ve sonra form sayfasına kullanıcıyı iade edilir. Bu bazıları bir repetative iştir beri ben, onlar önce göndermeden seçilmiş olan tüm seçenekleri yeniden seçin ve bu onlara zaman kazanmak istiyorsunuz. Benim ilk adım ben önceden seçilen seçenekleri seçmek için form sayfası javascript çalıştırmak düşündüm sonra seçme elemanları, ve yeniden doldurmak için gerekli AJAX fonksiyonları çağırmak için. Ben seçenekleri seçmek için form sayfasında javascript çalıştırmayı denediğinizde AJAX bitirmek çağrıları önce Ancak, bu çalışıyor. Seçenekler AJAX çağrıları tarafından doldurulur çünkü nedenle, seçenekleri seçer henüz yoktur, bu yüzden onları seçemezsiniz. Benim AJAX nüfuslu olanlar seçenekleri seçilmiş olsaydı izlemek için içeri önce yeni bir seçenek belirleyin eklenen alır, kod çalıştığında görmek için yeni bir seçenek eklemek için bazı test kod yazma, ve emin yeterli çalıştı, ben geçirerek URL yoluyla seçim seçenek değerlerini geri, ve sonra benim form sayfası $ _GET dizisini işleme.

Yani benim soru aşağı kaynar:

Ben AJAX doldurma fonksiyonlarının sona kadar bu çalışmasını seçilen seçenekleri seçer benim javascript önleyecek yapabileceği bir şey var mı?

"Sizin bütün yaklaşımı sahte olduğunu! Nerede sizin AJAX kodlama lisans aldın?! A Cracker Jack kutu?" Gibi ben de yanıtları kabul ediyorum Bu tepkiler sadece birkaç, ben kırılgan bir çiçek değilim, lütfen rağmen ;)

Thanks in advance, Carvell Fenton

P.S. Umarım çok fazla önsöz değil, ama ben plan gerekli olduğunu düşündüm.

5 Cevap

Kaç seviyeleri derin zincirlenmiş seçer mi? Ben sadece 2 düzeyleri ile bu yapıyorum (1 ajax seçme tahrik) ve ikinci sayfa yük için ben seçim listesini yüklemek için ajax arama başlatmak değil, aynı zamanda o id arasında göndermek istiyorsunuz benim jquery belge hazır fonksiyonu için bazı kod eklersiniz ajax arama tamamlandığında yüzden seçilen istedim alan benim seçme yüklü ve aynı zamanda set olacaktır gerekli bir değerdir.

It would help if you show us your code.

Eğer eşzamanlı AJAX çağrıyı yapıyoruz? İşte bunu yapmak için bir yoldur, ancak arama tamamlanıncaya kadar herhangi bir sonraki kod yürütülmesine duracaktır.

Başka bir yol uyumsuz arama yapmak için (ve daha doğru, sanırım), ve onComplete işleyicisi sonra çalıştırmak istediğiniz kodu koymak.

http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback <- jQuery ile geri çağrıları bir göz atın

Ayrıca Başlat \ Durdur http://docs.jquery.com/Ajax/ajaxStart#callback ve http://docs.jquery.com/Ajax/ajaxStop#callback bakmak - size gereken bir şey yapmak için javascript yürütebilirsiniz ....

Tüm cevaplar için teşekkürler! Bir kez daha Stackoverflow millet beni aydın var. Açıklamalara dayanarak, ben birkaç seçeneğiniz var düşünüyorum:

(1) Ben bir çerçeve önlemek ve sadece (benim comment sorunu karışık olsa bile, bu Jeremy Stein düşündüren ne olduğunu düşünüyorum) onreadystatechange olay dinleyicisi işlenecek daha fazla bilgi aktarmak. Ben dinamik select için seçenek öğeleri ekleme Bu durumda, ben sadece seçilmiş bunlardan birini açardı. Bu durumda ben php dosyasını dahili responseText yüzden ben onreadystatechange dinleyici seçilmiş olarak ayarlamak için hangi seçeneği biliyorum dahil olması, sonra php dosyasına (sanırım URL yoluyla) Seçilen opsiyonu geçmek zorunda.

(2) Form yazı sarmak için bir AJAX çağrısı kullanın ve (Mikeb önerilen) form sayfası asla terk edebilirsiniz.

(3) benim için çalışmayı (CRasco, Ben Hall, OrbMan) yaptığı bir çerçeve ekleyebilirsiniz.

Bana benim ihtiyaçlarını uygulamak ve en uygun için daha kolay olduğunu görmek için son birkaç jQuery, Prototype ve artılarını ve eksilerini anlamaya çalışırken saat ve MooTools geçirdim. Ben yakın jQuery ile istediğiniz ne davranan bir çok temel bir form sayfası almak başarılı olmuştur. Bu işlemi gerçekleştiren ve asla form sayfası bırakır, bu yüzden seçenek 2 ve 3 birlikte ben düşünüyorum. Şimdi ben ne kadar $. Ajax çağrısı aslında çalışıyor ve nerede ben de gerekirse gelen responseText alabilirsiniz hakkında biraz daha anlamaya var. Ben gerçi bakabilirsiniz :)

Yani tekrar teşekkürler hepsi.

What are you supposed to do on here when more than one answer pointed you in the right direction?