zend framework2 - Default for text element in zf2 forms -


how can setup default text element in zf2 forms?

i tried following:

  1. in view file. not data, , not saved:

    if($form->get('agencyname')->getvalue() === '')     $form->get('agencyname')->setvalue('virtual field practicum'); 
  2. this affects neither view, nor db:

    $this->add(array(         'name' => 'agencyname',          'options' => array(             'label' => 'agency name',         ),         'attributes' => array(             'disabled' => 'disabled',             'value' => 'virtual field practicum',         )     )); 
  3. i tried modify entity in 2 ways, did not affect anything:

    public function __construct() {     //set default agency name     $this->agencyname = 'virtual field practicum'; } 

or:

   public function setagencyname($agencyname)     {         if ($agencyname === '')             $this->agencyname = 'virtual field practicum';         else             $this->agencyname = $agencyname;          return $this;     } 

edit 1 adding generic actions post:

1) 1 responsible load forms, , process non-ajax calls:

public function edittabaction() {     $buildname = $this->params()->fromroute('buildname', 'unknown');      if ($buildname == 'unknown') {         $buildname = $this->params()->frompost('buildname', 'unknown');          if ($buildname == 'unknown') {             trigger_error('could not retrieve build name ' . $buildname . ' entity form!');         }     }      //extract parameter dispatch command     $studevalid = (int)$this->params()->fromroute('studevalid', 0);      if ($studevalid == 0) {         //extract parameter form submission         $studevalid = (int)$this->params()->frompost('studevalid', 0);         if ($studevalid == 0) {             return $this->notfoundaction();         }     }      $data = $this->getentity($buildname, $studevalid);      // objectmanager servicemanager     $objectmanager = $this->getentitymanager();       // from formelementmanager plugin     //forms defined in module.php     $formname = $buildname . "form";     $sl = $this->getservicelocator();     $form = $sl->get('formelementmanager')->get($formname);      $form->sethydrator(new doctrinehydrator($objectmanager ));     $form->setobject($this->getentityinstancefrombuildname($buildname));      $form->bind($data);      //set class , id buttons savechanges reference     $form->setattribute('class', "studentformsclass_$studevalid");     $form->setattribute('id', "studentformsid_$studevalid" . "_$buildname");       //set buildname form     $form->get('buildname')->setattribute('value', $buildname);      $request = $this->getrequest();     if ($request->ispost()) {         $formvalidatorname = "onlinefieldevaluation\form\\" . $buildname . "formvalidator";         $formvalidator = new  $formvalidatorname();         $form->setinputfilter($formvalidator->getinputfilter());          $form->setdata($request->getpost());          if ($form->isvalid()) {             $this->savetodb($form->getdata(), $buildname);              // redirect list of forms             return false;         } else {             foreach ($form->getmessages() $messageid => $message) {                 echo '<pre>';                 echo "validation failure '$messageid':";                 print_r($message);                 echo '</pre>';             }         }     }      $view = new viewmodel(array(         'studevalid' => $studevalid,         'buildname' => $buildname,         'form' => $form,     ));     $view->settemplate('online-field-evaluation/tabs/edit' . $buildname . '.phtml');      return $view; } 

2) 1 responsible ajax calls:

    public function validatepostajaxaction()     {          $request = $this->getrequest();         $response = $this->getresponse();          $buildname = $this->params()->fromroute('buildname', 'unknown');          if ($buildname == 'unknown') {             $buildname = $this->params()->frompost('buildname', 'unknown');              if ($buildname == 'unknown') {                 trigger_error('could not retrieve build name ' . $buildname . ' entity form!');             }         }          //extract parameter dispatch command         $studevalid = (int)$this->params()->fromroute('studevalid', 0);          if ($studevalid == 0) {             //extract parameter form submission             $studevalid = (int)$this->params()->frompost('studevalid', 0);             if ($studevalid == 0) {                  return $this->notfoundaction();             }         }          $data = $this->getentity($buildname, $studevalid);         $objectmanager = $this->getentitymanager();          $formname = $buildname . "form";         $sl = $this->getservicelocator();         $form = $sl->get('formelementmanager')->get($formname);          $form->sethydrator(new doctrinehydrator($objectmanager ));         $entityname = 'onlinefieldevaluation\entity\\' . $buildname;         $form->setobject(new $entityname());          $form->bind($data);          //set class , id buttons savechanges reference         $form->setattribute('class', "studentformsclass_$studevalid");         $form->setattribute('id', "studentformsid_$studevalid" . "_$buildname");           //set buildname form         $form->get('buildname')->setattribute('value', $buildname);          $messages = array();         if ($request->ispost()) {             $formvalidatorname = "onlinefieldevaluation\form\\" . $buildname . "formvalidator";             $formvalidator = new  $formvalidatorname();             $form->setinputfilter($formvalidator->getinputfilter());              $form->setdata($request->getpost());              if (!$form->isvalid()) {                 $errors = $form->getmessages();                 foreach ($errors $key => $row) {                      if (!empty($row) && $key != 'submit') {                         foreach ($row $keyer => $rower) {                             //save error(s) per-element                             //needed javascript                             $messages[$key][] = $rower;                         }                     }                 }             }              if (!empty($messages)) {                 $response->setcontent(                     \zend\json\json::encode(                         array('status' => 'error',                             'messages' => (array) $messages,                             'buildname' => $buildname,                             'studevalid' => $studevalid                          )));              } else {                 //save db <span class="wp-smiley wp-emoji wp-emoji-wink" title=";)">;)</span>                 $this->savetodb($form->getdata(), $buildname);                 $response->setcontent(                     \zend\json\json::encode(                         array(                             'status' => 'success',                             'messages' => 'successfuly saved.',                             'buildname' => $buildname,                             'studevalid' => $studevalid                         )                     ));             }         }          return $response;     } 

to setup default value element, following:

  • open controller's action, renders desired view

  • instantiate form, element name , call setvalue() on that

that looks following:

public function addaction() {      $form = new youragencyform();       $form->get('agencyname')->setvalue('virtual field practicum');      .... 

it's simple


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Magento/PHP - Get phones on all members in a customer group -

session - Logging Out Using PHP -