2012-11-11 19 views
9

ज़ेंड फ्रेमवर्क 1.12 में एक Zend_Form_Element_Multiselect था। ज़ेंड फ्रेमवर्क 2.0 में एक ही परिणाम कैसे प्राप्त करें? मैं केवल देखने Zend \ फार्म \ तत्व \ MultiCheckbox और ज़ेड \ फार्म \ तत्व \ करेंज़ेंड फ्रेमवर्क 2 में मल्टीसेलेक्ट

उत्तर

23

ठीक है, मैं इस सवाल का जवाब अपने आप को मिल गया है और यह आधिकारिक दस्तावेज से बाहर पढ़ने के लिए आसान नहीं था, बल्कि एक प्रयोग समाधान:

 $this->add(array(
      'type' => 'Zend\Form\Element\Select', 
      'attributes' => array(
       'multiple' => 'multiple', 
      ), 
      'name' => 'langs', 
      'options' => array(
       'label' => 'langs', 
       'value_options' => array(
        '0' => 'French', 
        '1' => 'English', 
        '2' => 'Japanese', 
        '3' => 'Chinese', 
       ), 
      ), 
     )); 

बस अपने स्थापना के लिए

 'attributes' => array(
      'multiple' => 'multiple', 
     ), 

जोड़ें।

+3

नाइस .. डिफ़ॉल्ट रूप से एकाधिक विकल्पों का चयन कैसे करें? यदि हमारे पास केवल एक है तो उदाहरण के लिए, हम मूल्य => '2' जैसे उपयोग करते हैं। बहु-विकल्प कैसे करें? – user2003356

+0

इस उत्तर के साथ डिफ़ॉल्ट सत्यापनकर्ता का कहना है कि इनपुट अमान्य है !!! यह कहता है "इनपुट घास में नहीं मिला" ["regexInvalid"] => स्ट्रिंग (53) "अमान्य प्रकार दिया गया। स्ट्रिंग, पूर्णांक या फ्लोट अपेक्षित" – Abadis

4

जेवेगेनी के उत्तर में एक जोड़ा: सुनिश्चित करें कि आप तत्व नाम में "[]" जोड़ते हैं, अन्यथा आप केवल अंतिम मूल्य का चयन करेंगे। यह एक PHP मुद्दा है, जेडएफ 2 के साथ कुछ भी नहीं करना है। तो अंतिम कॉन्फ़िगर इस तरह दिखता है:

$this->add(array(
     'type' => 'Zend\Form\Element\Select', 
     'attributes' => array(
      'multiple' => 'multiple', 
     ), 
     // NOTE the addition of "[]" to the name: 
     'name' => 'langs[]', 
     'options' => array(
      'label' => 'langs', 
      'value_options' => array(
       '0' => 'French', 
       '1' => 'English', 
       '2' => 'Japanese', 
       '3' => 'Chinese', 
      ), 
     ), 
    )); 
संबंधित मुद्दे