2014-09-09 4 views
0

Доброе утро, Я работаю с zend framework (php), и я вижу в var_dump значение опции для выбора после отправки запроса POST.Var_dump return null ... почему?

код:

<div class="entry"> 
<form action="<?php echo $this->escape($this->form->getAction()); ?>" method="<?php echo $this->escape($this->form->getMethod());?>"> 
<h2 class="selectVisibility">Seleziona la stagionalità : 
     <select name="cambiaStagionalita"> 
     <option value="ND"></option> 
     <?php foreach ($this->seasons as $season) : 
      $from = new Zend_Date($season['from']); 
      $until = new Zend_Date($season['until']); 
     ?> 
     <option value="<?php echo $season['from'];?>"> Dal <?php echo $from->toString(Zend_Date::DAY_SHORT. " " .Zend_Date::MONTH_NAME. " ".Zend_Date::YEAR);?> al <?php echo $until->toString(Zend_Date::DAY_SHORT. " " .Zend_Date::MONTH_NAME. " ".Zend_Date::YEAR);?></option> 
     <?php endforeach; ?> 
     </select> 
    </h2> <div></div><br/> 
    <input type="submit" name="public" value="Cerca"/> 

код PHP действие от контроллера:

$form = new Application_Form_Hotel_Costs(); 
$form->createForm2($seasons, $rooms, $mealPlans); 
var_dump($form->getValue("cambiaStagionalita")); 
//exit(0); 

Var_dump возвращает нуль .why? Значение параметра совпадает с полем db.Помощь!

+0

Что находится в классе 'Application_Form_Hotel_Costs'? –

+0

Application_Form_Hotel_Costs создает форму для страницы .. –

+0

Когда именно «$ form» увлажняется информацией, полученной от текущего HTTP-запроса POST? –

ответ

0

Я предполагаю, что ваш Application_Form_Hotel_Costs наследуется от Zend_Form и добавить некоторые Zend_Form_Element S в форму либо в init() или в createForm2() методы Application_Form_Hotel_Costs. Затем вы должны заполнить свою форму данными из запроса, когда вы получите запрос POST. В действии контроллера, который принимает POST Я хотел бы сделать это следующим образом:

$form = new Application_Form_Hotel_Costs(); 
$form->createForm2($seasons, $rooms, $mealPlans); 
if ($request->isPost()) { 
    $post = $request->getPost(); 
    if ($form->isValid($post)) { // populates the form with request data 
    var_dump($form->getValue("cambiaStagionalita")); // extract a valid value from the form 
    } 
} 

$this->view->form = $form; //pass the form to the view 

Способ по форме isValid() проверяет, фильтры и заполняет форму с данными из запроса. Поэтому после того, как вы вызвали этот метод и он прошел, вы можете извлечь действительные значения из формы.

Передача формы в виде может просто просмотреть сценарий более или менее <?php echo $this->form; ?>, если вы правильно инициализировали форму. Таким образом, вы можете опустить часть, в которой вы сами визуализируете форму, и позволить разработчику по умолчанию формы выполнять эту работу.

Zend Framework Manual имеет хороший Form Quickstart Tutorial на эту тему.

p.s. Вы не должны var_dump() значения в вашем действии контроллера. Вместо этого вы можете передать эти значения для просмотра и отобразить их правильно.

Смежные вопросы