Veritabanından ExtJS yük formu ürün / alanları

2 Cevap php

Burada ExtJS 3 kullanıyorum. Ben sunulacak alanları ile veritabanından bir FormPanel doldurmak istiyorum. Temelde, ben cadı benim form olacak alanlar bilmiyorum ve ben veritabanından tüm FormPanel öğeleri oluşturmak istiyorum. Ben alanları ve her şeyi ile PHP dosyasından yanıt olarak geçirilecek bir JSON dizesi oluşturmak olabilir ama ben ExtJS bu ile çalışmak nasıl bilmek gerekir.

Herhangi bir yardım?

Teşekkürler.

2 Cevap

Sen ExtJS anlayacağı bir biçimde alanları yüklemek ve göndermek zorunda olacak. Basit şekilde, ExtJS formatında doğrudan bağlanmasıyla sakıncası yoksa, arka uç ExtJS şablon stilini oluşturmak olacaktır. Bu durumda, php script böyle bir şey oluşturmak istiyoruz:

new Ext.form.FormPanel({
  width: 350,
  defaultType: 'textfield',
  items: [{
    xtype: '<?php echo $field ?>',
    value: '<?php echo $value ?>' 
  }]
});

Açıkçası, bu kadar "ürün" dizisi bir döngü içinde önceden inşa edilmiştir, bu yeniden düzenlemek olabilir, ve ihtiyacınız gibi birçok öğe ekleyebilirsiniz.

Ayrıca, bu kurmak nasıl bağlı, ayrıca sadece öğelerin dizi dönebilirsiniz ve anında forma eklemek, "yeni Ext.form .. vs" kısmı göndermek için ihtiyacını ortadan kaldırarak, ve kodunuzu ayırımı biraz daha iyi. Şahsen, ben gitmek istiyorum yolu.

Edit:

Eğer uygun bir ExtJS yapıda JSON dizi dönerseniz Yorumlarınız cevap olarak, yapmanız gerekir tüm kullanmaktır "panel.add (myItems);" [1] yöntemi, ve muhtemelen bir çağrı "(panel.doLayout);" zorlamak için güzel re-render.

[2] xtype nasıl çalıştığını için "bileşenleri" ile ilgili ayrıntıları göz atın.

[1] http://www.extjs.com/deploy/dev/docs/?class=Ext.form.FormPanel

[2] http://www.extjs.com/deploy/dev/docs/?class=Ext.Component

Ben bu eski bir yazı olduğunu biliyorum, ama bu benim Google Arama ilk geldi çünkü ben zaten çarpmak gerekir.

Ben bir Ext.Ajax.request, eval () o bir JSON dize dönen şans oldu (kötü Biliyorum, biliyorum, - ama çalışır ve Ext.Decode zaten eval kullanır) - Daha sonra içine eval sonuçları pass Panel.add (Ext.ComponentManager.create (eval_result));

Bu kimse yardımcı olur umarım.