如何使用zend_form填充某个元素中的值

时间:2010-04-05 11:37:40

标签: php zend-framework zend-form

我的数据库表中有一些字段,还有一个带有电话名称的字段,我保存了这个字段的值,如111-222-5555

现在我想阅读我的所有字段,并填充到我的表单,我喜欢填充电话归档到3个元素(作为文本元素)

当我尝试这段代码时

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

除电话字段外,所有字段均以表格形式显示

如何将手机字段填充到3个元素

感谢

2 个答案:

答案 0 :(得分:0)

从我(几乎)不了解的情况来看,您正试图在数据库表中填写一个表单的3个元素和一个字段(电话)的内容。

要实现此目的,您可以使用setDefault()对象的Zend_Form方法。像这样:

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

populate()之后以及希望填充自定义值的每个字段执行此操作。

答案 1 :(得分:0)

如果我正确理解您的问题,首先您需要创建3个单独的表单字段(类似于phone_1,phone_2和phone_3的行)以保存3个单独的电话段。然后在填充字段之前,将1字段的数据库输出分成3个字段。

$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); 

最后,在将表单输入插入数据库之前,必须将3个字段的输入组合到1个字段中。

$values = $frm->getValues();

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

$cutomModel->insert($values);