2011-06-02 24 views
6

मैं एक फार्म वर्ग बनाया प्रस्तुत विस्तार zend_form.I दो प्रस्तुत करने बटन:Zend दो बटन एक ही नाम

$like=new Zend_Form_Element_Image('vote'); 
$like->setImage($config->path->images."up.png") 
->setValue(2); 

$dislike=new Zend_Form_Element_Image('vote'); 
$dislike->setImage($config->path->images."down.png") 
->setValue(1); 

मैं दो एक ही नाम और भिन्न मान के साथ बटन सबमिट करना चाहते हैं, ताकि मैं बाद में कर सकते हैं नियंत्रक में एक स्विच बयान द्वारा प्रस्तुत एक का मान का उपयोग:

$submit = $this->_request->getPost('vote'); 

switch($submit) { 
case 'one': 
// button one was pressed 
break; 
case 'two': 
} 

} 

लेकिन मैं एक ही नाम के साथ उन लोगों के लिए सेट करते हैं पिछले एक अधिभावी है पहले तो केवल एक बटन उत्पादन होता है।

फ़ाइल तत्वों के साथ एक विधि सेट है Multifile() जो चाल करता है।

मुझे यहां क्या करना चाहिए?

धन्यवाद

लुका

उत्तर

0

क्यों कुछ इस तरह से काम नहीं:

if($this->_request->isPost() && $yourForm->isValid($this->_request->getPost())) { 
    if($yourForm->one->isChecked()) 
     // button one was pressed 
    elseif($yourForm->two->isChecked()) 
     // button two was pressed 
} 
+0

मैं और अधिक है मेरे नियंत्रक में एक रूप से और मैं विशेष रूप से जांचना चाहता हूं कि "वोट" पोस्ट किया गया है .. मेरे पास पिछली पसंद के रूप में चेक की गई विधि है – luca

0

आप ही नाम के साथ दूसरा बटन ने कहा है पहले overide करेंगे। एकमात्र समाधान जो मैं सोच सकता हूं वह फ़ॉर्म के लिए व्यूस्क्रिप्ट का उपयोग करना है और बटन को HTML मैन्युअल रूप से जोड़ना है।

मुझे उम्मीद है कि इससे मदद मिलती है।

सादर,

गैरी

2

आप छवियों के लिए array notation आज़मा सकते हैं।

+0

क्या आप कृपया एक उदाहरण की रिपोर्ट कर सकते हैं – luca

0

यह संभव है। आप क्या करेंगे, आपको मुख्य फ़ॉर्म के भीतर एक अलग सबफ़ॉर्म या फ़ील्डसेट से संबंधित प्रत्येक सबमिट बटन की आवश्यकता होगी।

इस तरह सबमिट बटन तब नामित किए जाएंगे, और आप उन्हें फ़ॉर्म में जोड़ सकेंगे।

प्रत्येक सबमिट बटन के बाद एक ही नाम होगा। हालांकि प्रत्येक सबमिट बटन का पूर्ण-योग्य नाम अभी भी अलग होगा।

उदा।

$likeSubform = new Zend_SubForm(); 
$dislikeSubform = new Zend_SubForm(); 

$like=new Zend_Form_Element_Image('vote'); 
$like->setImage($config->path->images."up.png") 
    ->setValue(2); 

$dislike=new Zend_Form_Element_Image('vote'); 
$dislike->setImage($config->path->images."down.png") 
     ->setValue(1); 

$likeSubform->addElement($like); 
$dislikeSubform->addElement($dislike); 

$form->addSubForm($likeSubform, 'like'); 
$form->addSubForm($dislikeSubform, 'dislike'); 

//=================================================== 

echo $form->getSubForm('like')->vote->getName(); 

//vote 

echo $form->getSubForm('like')->vote->getFullyQualifiedName(); 

//like[vote] 
दुर्भाग्य से आप के लिए

, बाद में जब आप प्रपत्र, ViewHelper डेकोरेटर कि जेडएफ साथ जहाजों रेंडर करने के लिए जा रहा है प्रस्तुत करना पूरी तरह से योग्य नाम का उपयोग कर सबमिट बटन।

हालांकि आप तो अपने स्वयं के ViewHelper डेकोरेटर कि डिफ़ॉल्ट को ओवरराइड कर, इस प्रकार के बजाय अयोग्य नाम का उपयोग कर प्रपत्र तत्व प्रतिपादन बना सकते हैं (आप कि डेकोरेटर, जो ज्यादातर लोगों करना का उपयोग कल्पना करते हुए):

class My_Form_Decorator_ViewHelper extends Zend_Form_Decorator_ViewHelper 
{ 

    //override default render method 
    public function render($content) 
    { 
     ... 

     $name = $element->getName(); 
     $id = $element->getName(); 

     ... 
    } 
} 
संबंधित मुद्दे