Oluşturmak için, kumandadan değerleri almak

3 Cevap php

Ben PHP Zend Framework kullanıyorum.

Nasıl tarafından gönderilen denetleyicisi değerleri alabilirsiniz:

$infoForm=array(
// I get these values from a DB 'idCity' => $idCity , 'idRestaurant'=>$idRestaurant

);

$ Form-> populate ($ InfoForm);

i Dojo_Form de bilgi almak

$ Şehir = new Zend_Dojo_Form_Element_FilteringSelect ('idCity');

ama idCity I DB gidiyor ve o City'de restoranlar görmek için FilteringSelect ('idRestaurant') güncellemek ediyorum

How can I see the value of the variables sent by $ Form-> populate ($ InfoForm); in the form?

Ben formda $ this-> GetValue ('idCity') denedim, ama bu denetleyicisi döndüğünde değerini almak gibi görünüyor. Ben değer idCity kontrol edin ve sonra FilteringSelect ('idRestaurant') oluşturmak istiyorum.

:: Iyi açıklanması

I've got: I've got: Controller (extends Zend_Controller_Action)

Model (Zend_Db_Table_Abstract) - veritabanına erişmek için> fonksiyonlar

Formu (Zend_Dojo_Form uzatır) -> oluşturduğunuz :: Burada değerleri görmek istiyorum!

Görünüm (Ben formu görüntülemek nerede)

I get the values from the database in the controller, then I send them to Form with $ Form-> populate ($ InfoForm); I woul like to see the values that came from the controller to generate the form accordingly

3 Cevap

Böyle bir form 'değerleri alabilirsiniz:

$valueArray = $form->getValues();

Sonra $ valueArray gibi olacak:

array(
    'elementName1' => 'value1',
    'elementName2' => 'value2',
    ...
);

Eğer öyleyse ... Ama üzgünüm, soruyu yanlış olabilir!

Sen Form görebilirsiniz böylece değerini geri beslemek için bu-> görünüm-> varName $ ayarlayabilirsiniz.

Örneğin, denetleyicisi (eylem):

$this->view->myVar = $this->getRequest()->getParam['myVar'];

Sonra formu sadece isteyin:

<?= $this->myVar ?>

Ben Zend_Dojo hatta Dojosu'nun aşina değilim, ama kendisi ancak bazı araştırma sonra ben size buna benzer bir yapı olması gerektiğini düşünüyorum controller:

public function myAjaxAction()
{
    if ($this->getRequest()->isXmlHttpRequest()) // if this is an ajax request
    {
        $this->_helper->viewRenderer->setNoRender(); //ajax call, so do //not render
        $jsonData = *your data in json format that will be passed back to the form*
        $this->getResponse()->appendBody($jsonData); // _response is the Response object                                                //that you are appending data to
    }
}

The code above is a simplified version based on the link below. For more info see that site. Be aware that the version used is 1.6 but it can give you a better idea. SOURCE: http://blog.midstride.com/2008/08/26/integrating-ajaxdojo-into-the-zend-mvc-in-8-steps/