Zend_Form kullanarak bazı elemanı bir değer nasıl doldurulacağı

2 Cevap php

benim veritabanı tablosundaki bazı alanları var, ve telefon isimde bir alan, ben bu 111-222-5555 gibi yayımlandı, bu değer tasarruf

şimdi benim tüm alanları okumak ve benim form doldurmak istiyorum, ben telefon (metin öğesi gibi) 3 elemanları açtı doldurmak istiyorum

ben bu kodu çalıştığınızda

$id = $this->_request->getParam ( 'id' );
$values = $cutomModel->findCustomerById($id);// return array of row 
$frm->populate($values); 

Tüm alanlar telefon alanı dışında formda göstermek,

nasıl ben 3 elemanları telefon alanını doldurabilirsiniz

teşekkürler

2 Cevap

Sorunuzu doğru anlamak, öncelikle 3 ayrı telefon kesimleri tutmak için 3 ayrı form alanları (phone_1, phone_2 ve phone_3 çizgisinde bir şey) oluşturmanız gerekir. Sonra alanları doldurmadan önce, 3 alana 1 alanın veritabanı çıkışını ayırmak.

$id = $this->_request->getParam ( 'id' );
$values = $cutomModel->findCustomerById($id);// return array of row 

// split phone number into 3 values
list($values['phone_1'], $values['phone_2'], $values['phone_3']) = explode('-', $values['phone'], 3);

$frm->populate($values); 

Son olarak, veritabanına form girişi takmadan önce 1 alana 3 alanlardan giriş birleştirmeniz gerekir.

$values = $frm->getValues();

// combine phone number into 1 value
$values['phone'] = implode('-', $values['phone_1'], $values['phone_2'], $values['phone_3'])

$cutomModel->insert($values);

I (pek) ne anladığını itibaren, veritabanı tablosundaki bir alan (telefon) içeriği ile bir formun 3 elemanları doldurmaya çalışıyoruz.

Eğer Zend_Form nesne setDefault() yöntemini kullanabilirsiniz bunu başarmak için. Böyle bir şey:

$frm->setDefault('field_name', $values->phone);

populate() sonra özelleştirilmiş bir değer dolu olmasını istediğiniz her alan için bunu yapın.