【问题标题】:Populate a HTML form with Zend Framework session使用 Zend Framework 会话填充 HTML 表单
【发布时间】:2012-09-24 08:27:52
【问题描述】:

我正在尝试使用会话中保存的数据填充 HTML 表单。这是我到目前为止所做的,但它不起作用:

在我的控制器中:

      $sessionErrorForm = new Zend_Session_Namespace('errorForm');

      $sessionErrorForm->prenom     = $form['prenom'];

      $this->_redirect('/inscription');

在我看来,如果会话存在,我需要在值字段中显示一些内容:

 <div><input type="text" name="prenom" value="<?php if (isset($sessionErrorForm->prenom)): echo $sessionErrorForm->prenom; endif;?>" title="Pr&#233;nom *"/>

提前感谢您的帮助

【问题讨论】:

  • 您在分配到会话之前是否获得了 $form['prenom'] 值?
  • 是的,这部分正在工作。我在会话中测试了数据,它是正确的......它只是没有显示在 HTML 中
  • 您是否在没有 isset 条件的情况下获取数据?
  • 不幸的是,没有 isset 也无法正常工作

标签: php forms zend-framework


【解决方案1】:

好的。与here 相同。您总是必须先实例化您的 Session 才能访问它。您可以在控制器中声明它:

$session = new Zend_Session_Namespace('errorForm');
$this->view->sessionErrorForm = $session;

并使用$this-&gt;sessionErrorForm 在您的视图中访问它:

<div><input type="text" name="prenom" value="<?php if (isset($this->sessionErrorForm->prenom)): echo $this->sessionErrorForm->prenom; endif;?>" title="Pr&#233;nom *"/>

或者你可以在你的视图中声明它并像下面这样使用它:

<?php $sessionErrorForm = new Zend_Session_Namespace('errorForm'); ?>    
<div><input type="text" name="prenom" value="<?php if (isset($sessionErrorForm->prenom)): echo $sessionErrorForm->prenom; endif;?>" title="Pr&#233;nom *"/>

但是,如果您在之前的请求中写入会话,则始终必须创建对会话的新引用,前提是您之前未在范围内声明它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多