doutao5499 2013-10-24 14:36
浏览 48
已采纳

Zend形成重定向

I am writing a code in zend to capture data from a users input and and save it in the database. I am using zend forms. The information to capture is too much, so I want to create another form to fill in the other data...how can i redirect from one form to another after filling the first form?

Here is my code for Forms, Indexcontroller and models

IndexController.php

   <?php

    class IndexController extends Zend_Controller_Action
     {

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        $organization_details = new Application_Model_DbTable_OrganizationDetails();
        $this->view->organization_details= $organization_details->fetchAll();
    }

    public function addAction()
    {
        $form = new Application_Form_OrganizationDetails();

        $form->submit->setLabel('Next');
        $this->view->form = $form;

        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {                

                $Organization_Name = $form->getValue('Organization_Name');
                $Organization_Trading_Name =  $form->getValue('Organization_Trading_Name');
                $Region = $form->getValue('Region');
                $City = $form->getValue('City');
                $Physical_Address = $form->getValue('Physical_Address');
                $Physical_code = $form->getValue('Physical_code');
                $Postal_Address = $form->getValue('Postal_Address');
                $Postal_code = $form->getValue('Postal_code');
                $Telephone_Number = $form->getValue('Telephone_Number');
                $Fax_Number = $form->getValue('Fax_Number');
                $Cellular_Number = $form->getValue('Cellular_Number');
                $Organization_Email = $form->getValue('Organization_Email');
                $Organization_Website = $form->getValue('Organization_Website');                                

                $organization_details = new  Application_Model_DbTable_OrganizationDetails();
                $organization_details->addOrganizationDetails($Organization_Name, $Organization_Trading_Name, $Region, $City, $Physical_Address, $Physical_code, $Postal_Address, $Postal_code, $Telephone_Number,$Fax_Number, $Cellular_Number, $Organization_Email, $Organization_Website);

                $this->_helper->redirector('add');
            } else {
                $form->populate($formData);
            }
}
    }

    public function editAction()
    {
        $form = new Application_Form_OrganizationDetails();
        $form->submit->setLabel('Update'); //can set it here also in forms
        $this->view->form = $form;

        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $id = (int)$form->getValue('id');
                $Organization_Name = $form->getValue('Organization_Name');
                $Organization_Trading_Name = $form->getValue('Organization_Trading_Name');
                $Region = $form->getValue('Region');
                $City = $form->getValue('City');
                $Physical_Address = $form->getValue('Physical_Address');
                $Physical_code = $form->getValue('Physical_code');
                $Postal_Address = $form->getValue('Postal_Address');
                $Postal_code = $form->getValue('Postal_code');
                $Telephone_Number = $form->getValue('Telephone_Number');
                $Fax_Number = $form->getValue('Fax_Number');
                $Cellular_Number = $form->getValue('Cellular_Number');
                $Organization_Email = $form->getValue('Organization_Email');
                $Organization_Website = $form->getValue('Organization_Website');
                $organization_details = new Application_Model_DbTable_OrganizationDetails();
                $organization_details->updateOrganizationDetails($id, $Organization_Name, $Organization_Trading_Name, $Region, $City, $Physical_Address, $Physical_code, $Postal_Address, $Postal_code, $Telephone_Number,$Fax_Number, $Cellular_Number, $Organization_Email, $Organization_Website);

                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        } else {
            $id = $this->_getParam('id', 0);
            if ($id > 0) {
                $organization_details = new Application_Model_DbTable_OrganizationDetails();
                $form->populate($organization_details->getOrganizationDetails($id));
            }
        }
    }

    public function deleteAction()
    {
        if ($this->getRequest()->isPost()) {
            $del = $this->getRequest()->getPost('del');
            if ($del == 'Yes') {
                $id = $this->getRequest()->getPost('id');
                $organization_details = new Application_Model_DbTable_OrganizationDetails();
                $organization_details->deleteOrganizationDetails($id);
            }
            $this->_helper->redirector('index');
        } else {
            $id = $this->_getParam('id', 0);
            $organization_details = new Application_Model_DbTable_OrganizationDetails();
            $this->view->organization_details = $organization_details->getOrganizationDetails($id);
        }
    }


}

OrganizationDetails.php //model

<?php

class Application_Model_DbTable_OrganizationDetails extends Zend_Db_Table_Abstract
{

    protected $_name = 'organization_details';

    public function getOrganizationDetails($id)
    {
        $id = (int)$id;
        $row = $this->fetchRow('id = ' . $id);
        if (!$row) {
        throw new Exception("Could not find row $id");
        }
        return $row->toArray();
    }

    public function addOrganizationDetails($Organization_Name, $Organization_Trading_Name, $Region, $City, $Physical_Address, $Physical_code, $Postal_Address, $Postal_code, $Telephone_Number,$Fax_Number, $Cellular_Number, $Organization_Email, $Organization_Website)
    {
        $data = array(
            'Organization_Name'=> $Organization_Name,
            'Organization_Trading_Name'=> $Organization_Trading_Name,
            'Region'=> $Region,
            'City'=> $City,
            'Physical_Address'=> $Physical_Address,
            'Physical_code'=> $Physical_code,
            'Postal_Address'=> $Postal_Address,
            'Postal_code'=> $Postal_code,
            'Telephone_Number'=> $Telephone_Number,
            'Fax_Number'=> $Fax_Number,
            'Cellular_Number'=> $Cellular_Number,
            'Organization_Email'=> $Organization_Email,
            'Organization_Website'=> $Organization_Website,
        );
        $this->insert($data);
    }

    public function updateOrganizationDetails($id, $Organization_Name, $Organization_Trading_Name, $Region, $City, $Physical_Address, $Physical_code, $Postal_Address, $Postal_code, $Telephone_Number,$Fax_Number, $Cellular_Number, $Organization_Email, $Organization_Website)
    {
        $data = array(
            'Organization_Name'=> $Organization_Name,
            'Organization_Trading_Name'=> $Organization_Trading_Name,
            'Region'=> $Region,
            'City'=> $City,
            'Physical_Address'=> $Physical_Address,
            'Physical_code'=> $Physical_code,
            'Postal_Address'=> $Postal_Address,
            'Postal_code'=> $Postal_code,
            'Telephone_Number'=> $Telephone_Number,
            'Fax_Number'=> $Fax_Number,
            'Cellular_Number'=> $Cellular_Number,
            'Organization_Email'=> $Organization_Email,
            'Organization_Website'=> $Organization_Website,
        );
        $this->update($data, 'id = '. (int)$id);
    }

    public function deleteOrganizationDetails($id)
    {
        $this->delete('id =' . (int)$id);
    }


}

OrganizationDetails.php //forms

<?php
class Application_Form_OrganizationDetails extends Zend_Form
{
    public function init()
    {
        $this->setName('organization_details');
        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');

        $Organization_Name = new Zend_Form_Element_Text('Organization_Name');
        $Organization_Name->setLabel('Organization Name')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');

        $Organization_Trading_Name = new Zend_Form_Element_Text('Organization_Trading_Name');
        $Organization_Trading_Name->setLabel('Organization Trading Name')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');

        $Region= new Zend_Form_Element_Select('Region');
        $Region->setAttribs(array('style' => 'width: 150px;'));  
        $Region ->setLabel('Region')
                ->addMultiOptions(array(
                            '--Select One--'=>'--Select One--',
                            'City of Johannesburg'=>'City of Johannesburg',
                            'City of Tswane'=>'City of Tswane',
                            'Ekhurhuleni Metropolitian Municipality'=>'Ekhurhuleni Metropolitian Municipality',
                            'West Rand District Municipality'=>'West Rand District Municipality',
                            'Sedibeng District Municipality '=>'Sedibeng District Municipality',

                        ));


        $City = new Zend_Form_Element_Select('City');
        $City->setAttribs(array('style' => 'width: 144px;'));  
        $City ->setLabel('City')
            ->addMultiOptions(array(
                            'Pretoria'=>'Pretoria',
                            'Gauteng'=>'Gauteng',
                            'Katlego'=>'Katlego',

                        )); 


        $Physical_Address = new Zend_Form_Element_Text('Physical_Address');
        $Physical_Address->setLabel('Physical Address')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');

        $Physical_code = new Zend_Form_Element_Text('Physical_code');
        $Physical_code->setLabel('Physical code')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('Digits');

        $Postal_Address = new Zend_Form_Element_Text('Postal_Address');
        $Postal_Address->setLabel('Postal Address')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');

        $Postal_code = new Zend_Form_Element_Text('Postal_code');
        $Postal_code->setLabel('Postal code')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('Digits');

        $Telephone_Number = new Zend_Form_Element_Text('Telephone_Number');
        $Telephone_Number->setLabel('Telephone Number')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('Digits');

        $Fax_Number = new Zend_Form_Element_Text('Fax_Number');
        $Fax_Number->setLabel('Fax Number')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('Digits');

        $Cellular_Number = new Zend_Form_Element_Text('Cellular_Number');
        $Cellular_Number->setLabel('Cellular Number')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('Digits');

        $Organization_Email = new Zend_Form_Element_Text('Organization_Email');
        $Organization_Email->setLabel('Organization Email')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('EmailAddress');

        $Organization_Website = new Zend_Form_Element_Text('Organization_Website');
        $Organization_Website->setLabel('Organization Website')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');




        $submit = new Zend_Form_Element_Submit('submit');
        $submit->setAttrib('id', 'submitbutton');

        $this->addElements(array($id, $Organization_Name, $Organization_Trading_Name, $Region, $City, $Physical_Address, $Physical_code, $Postal_Address, $Postal_code, $Telephone_Number,$Fax_Number, $Cellular_Number, $Organization_Email, $Organization_Website, $submit));
    }
}
  • 写回答

1条回答 默认 最新

  • dongtieshang5429 2013-10-25 06:29
    关注

    if i understood correctly , you want to redirect after submitting your first form to another form, you can do it easily with,

     $this->_helper->redirector('action', 'controller');
    

    where the controller will have the name of your controller and the action name would be where you will be calling the second form just like your first form.

    and after submitting each form you can save or update data accordingly..

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算