2009-07-01 35 views
7

tôi muốn trình bày các nút radio trong nhóm sản phẩm hợp lý:Nhóm nút radio trong Zend Framework

Broadband products: 
    (*) 2 Mbit 
    () 4 Mbit 

Voice products: 
    () Standard 
    () Total 

Bundles: 
    () 4 Mbit + Standard 
    () 4 Mbit + Total 

Tất cả các nút radio có cùng name thuộc tính - bạn sẽ có được ý tưởng. Có vẻ như Zend Framework 1.8 không hỗ trợ nhóm các nút radio theo cách này. Có giải pháp nào cho điều này không?

Cập nhật. Chỉ cần làm rõ, mã kết quả sẽ trông hơi giống như sau:

Broadband products: <br/> 
<input type="radio" name="product" value="1"/> 2 Mbit <br/> 
<input type="radio" name="product" value="2"/> 4 Mbit <br/> 

Voice products: <br/> 
<input type="radio" name="product" value="3"/> Standard <br/> 
<input type="radio" name="product" value="4"/> Total <br/> 

Bundels: <br/> 
<input type="radio" name="product" value="5"/> 4 Mbit + Standard <br/> 
<input type="radio" name="product" value="6"/> 4 Mbit + Total <br/> 

Không bao giờ nhập mã định dạng chính xác. Chỉ có các yếu tố hình thức quan trọng.

+3

Điều này có vẻ như đó có thể là vấn đề tương tự. http://framework.zend.com/issues/browse/ZF-3541 Báo cáo đề xuất sửa chữa trong bài đăng của anh ấy. –

+0

Bạn đang sử dụng Zend_Form? – jason

+0

Có, tôi sử dụng Zend_Form. –

Trả lời

12

Bạn đúng khi cho rằng ZF 1.8 không hỗ trợ nhóm các tùy chọn theo cách này. Bạn có thể dễ dàng xem mã bên trong Zend_View_Helper_FormRadio và tạo trình trợ giúp xem của riêng bạn hỗ trợ mảng đa chiều (tức là các nhóm chọn). Tôi phải làm điều này đã cho một dự án, kiểm tra ví dụ tại pastebin.com

PHP:

$form->addElement('radio', 'test', array(
    'helper'=>'formMultiRadio', 
    'label'=>'Test Thing', 
    'multiOptions'=>array(
     'Test'=>array('1'=>'1', '2'=>'2'), 
     'Test 2'=>array('3'=>'3', '4'=>'4'), 
     'Test 3'=>array('5'=>'5', '6'=>'6'), 
    ), 
)); 

Kết quả HTML:

<dt id="test-label"><label for="test" class="optional">Test Thing</label></dt> 

<dd id="test-element"> 
Test<br /> 
<label for="test-1"><input type="radio" name="test" id="test-1" value="1" />1</label><br /> 
<label for="test-2"><input type="radio" name="test" id="test-2" value="2" />2</label><br /> 
Test 2<br /> 
<label for="test-3"><input type="radio" name="test" id="test-3" value="3" />3</label><br /> 
<label for="test-4"><input type="radio" name="test" id="test-4" value="4" />4</label><br /> 
Test 3<br /> 
<label for="test-5"><input type="radio" name="test" id="test-5" value="5" />5</label><br /> 
<label for="test-6"><input type="radio" name="test" id="test-6" value="6" />6</label> 
</dd> 
+0

Cảm ơn bạn đã chỉ cho tôi đúng hướng. Tôi cần bọc một div xung quanh mỗi nhóm nút radio, và có thể hoàn thành nó theo cách tương tự. – Chris