2009-10-28 25 views
5

I'want để render:Zend_Form mảng ký hiệu và các yếu tố có sản phẩm nào tên

<input type="text" value="" name="foo[]" /> 
<input type="text" value="" name="bar[]" /> 

nhưng Zend_Form_Element đòi hỏi một (string) Tên, vì vậy tôi cần phải làm:

$this->addElement('text', '1', array(
    'belongsTo' => 'foo' 
)); 

$this->addElement('text', '2', array(
    'belongsTo' => 'bar' 
)); 

nhưng sản lượng là:

<input id="foo-1" type="text" value="" name="foo[1]" /> 
<input id="bar-2" type="text" value="" name="bar[2]" /> 

tôi cũng có thể chấp nhận một kết quả như:

<input id="foo-1" type="text" value="" name="foo[1]" /> 
<input id="bar-1" type="text" value="" name="bar[1]" /> 

nhưng Zend_Form_Element viết lại các yếu tố với cùng tên

là có một cách để làm những gì tôi cần?

+0

Tôi muốn như vậy! Vui lòng cho tôi biết nếu bạn giải quyết. –

Trả lời

7

Đối với nhiều giá trị:

$foo = new Zend_Form_Element_Text('foo'); 
// Other parameters 
$foo->setIsArray(TRUE); 
$this->addElement($foo); 

Tạo: name="foo[]"

-

Nếu bạn đang tìm kiếm chìa khóa trao như name="foo[bar]", sử dụng:

$bar= new Zend_Form_Element_Text('bar'); 
// Other parameters 
$bar->setBelongsTo('foo'); 
$this->addElement($bar); 

- -

Thử nghiệm trên ZF 1.11.5

0

lớp MyFooForm kéo dài Zend_Form { public function init() { $ fullNameOpts = array ( 'cần thiết' => sai, 'nhãn' => 'FullName', 'isArray' => true, ' validators '=> array (mảng (' stringLength ', false, mảng (1, 250))) ); $ this-> addElement ('văn bản', 'tên đầy đủ', $ fullNameOpts); // phần còn lại của các yếu tố, các hình thức và các công cụ goes here }}

Và điều đó tạo

<dd id="fullName-element"><input type="text" class="inputAccesible" value="" id="fullName"name="fullName[]"></dd> 

Đó là trên Element.php, trong Mẫu, dòng 512 "isArray" kiểm tra. Tôi đang sử dụng zend_form thông thường, crossValidation với trình xác thực tùy chỉnh và tôi đang đẩy biểu mẫu con để nhân rộng biểu mẫu chính, vì người dùng có thể thêm nhiều lần cùng một biểu mẫu. Ngoài ra, tôi là quá lười biếng để nghiên cứu các trang trí tùy chỉnh, tôi đã tạo ra một trang, nhưng nó giết chết các ký tự con và ký pháp mảng, vì vậy tôi chỉ gắn với các ký tự thông thường và giải quyết nó.

Tôi đang ở Zf 1.10.

+0

Nhưng nói chung, khi chúng ta sử dụng ký hiệu mảng trống, chúng ta có nhiều trường có cùng tên. Nếu bạn cố gắng tạo một phần tử mới có cùng tên mong đợi một trường mới fullName [] điều này không hoạt động –

+0

Đăng một số mã và tôi sẽ cung cấp cho bạn một bàn tay :). Tôi đã thực hiện một lib để đối phó với điều này, và mục tiêu tiếp theo của tôi là đặc biệt đó. Bạn có một biểu mẫu và bạn muốn * sao chép * chỉ 1 phần tử của biểu mẫu. –

Các vấn đề liên quan