Örnek: Bir veya daha fazla niteliğe sahip olan Üyelerim (verilerinize giriş yapan ve güncelleyen) sahibim. Bu yüzden bir DataObject 'Üyeleri' ve bir has_one/has_many ilişkisi olan bir DataObject 'Kalifikasyon'um var. BöyleSilverstripe 3.2: Bir ön formdaki Data Nesneleri dinamik olarak nasıl ekleyebilir ve güncelleyebilirim?
şey:
class Qualification extends DataObject {
private static $db = array (
'Title' => 'Text',
'From' => 'Date',
'Till' => 'Date'
);
private static $has_one = array (
'Member' => 'Member',
);
...
class Member extends DataObject {
...
private static $has_many = array (
'Qualifications' => 'Qualification',
);
...
Şimdi üye aynı anda birçok nitelikleri eklemek ve aynı zamanda mevcut nitelikleri güncellemesini sağlayan önyüzdeki bir form inşa etmek istiyor aynı formda.
Bu
Qualifikation Bir
Başlık gibi görünebilir: Gönderen xxx (textfield): xxx (DateField) Till: xxx (DateField)
Qualifikation İki
Başlık: xxx (textfield) Kimden: xxx (datefield) Till: xxx (DateField)
+ nitelikleri
Bunu yapmanın en iyi yolu nedir eklemek? http://jsfiddle.net/nzYAW/
Ama nasıl güncellemek ve veritabanına eklemek için işleyebilir:
böyle dinamik alanları eklemek için jQuery kullanabilirsiniz. Denediğim her şey gerçekten karmaşık ve dağınıktı, yani bence başka birinin şu anda görmediğim bir fikri var. Her yardım mutluluk duyacaktır!
Bunu daha önce hiç yapmadım, ama [GridField uzantı modülü] ile ön uçta bir "GridField" kullanmaya çalışıyorum (https://github.com/silverstripe-australia/silverstripe-gridfieldextensions) "GridFieldEditableColumns" ve "GridFieldAddNewInlineButton" bileşenleri. – 3dgoo
@iraia sadece gönderiyi okuyan ve giriş niteliği ismini bir dizi olarak okunabilecek bir formatta değiştiren bir eyleme ihtiyacın var: http://stackoverflow.com/questions/2433727/submitting-a-multidimensional-array-via -post-php ile. Ardından "tuşlar" verilerini veri nesnesine kaydedin. Tabii ki, sahip olduğunuz girişlerin sayısını gönderen gizli bir alana sahip olabilirsiniz ve ardından bunu birleştirip bir alan elde edebilirsiniz, ancak bu şekilde sunulan verileri kolayca yineleyebilirsiniz. –
Teşekkürler beyler. Her iki seçeneği de deneyeceğim ve sonuçlarımı burada bildireceğim. :) – iraira