0

私のコントローラーでは、変数をビューに送信する前にセッションに保存しようとしています:

session_start();
$_SESSION['prenom'] = $form['prenom'];

$this->_view->prenom = $_SESSION['prenom'];

$this->_redirect('inscription');

次に、私の見解では、それを表示する必要があります:

<div><input type="text" name="prenom" value="<?php if (isset($prenom)){echo $prenom;}?>" title="Pr&#233;nom *" class="small"/>

あなたの助けを前もって感謝します

4

4 に答える 4

2

手始めに、一貫性を保ち、Zend Framework を使用しましょう。

//session_start();
//$_SESSION['prenom'] = $form['prenom'];  BECOMES
$session = new Zend_Session_Namespace('name'); //will automatically call session_start if required
$session->prenom = $form->getValue('prenom');//assumes $form is a valid Zend_Form object

//$this->_view->prenom = $_SESSION['prenom']; BECOMES
$this->view->prenom = $session->prenom; //$this->_view isn't a thing as far as I know
//if you are expecting the view variable to work after redirect... it won't
//$this->_redirect('inscription'); MAY BECOME
$this_forward('inscription');//will call new action without resetting the request

ビュースクリプトの場合:

//assumes you are in the correct view script
//when accessing variables passed to the view, use $this
<input type="text" name="prenom" value="<?php 
if (isset($this->prenom) { 
    echo $this->prenom;
}
?> " title="Prenom *" class="small"/>
于 2012-09-22T07:10:19.427 に答える
1

リダイレクト メソッドは、設定された変数をリセットします。代わりに、ビューを変更する必要があります。何かのようなもの:

$this->_helper->viewRenderer('action-name-here');

注: Zend Framework を使用している場合は、ネイティブ セッション メソッドを使用しないでくださいZend_Session

于 2012-09-21T14:21:22.743 に答える
0

<div><input type="text" name="prenom" value="<?php if (isset($_SESSION['prenom'])) { echo $_SESSION['prenom']; }?>" title="Pr&#233;nom *" class="small"/>

于 2012-09-21T14:27:19.213 に答える
0

リダイレクト メソッドを使用すると、実際の HTTP リダイレクトが行われる (ページのリロード) ため、すべての変数がリセットされます。フォワード メソッドを探していると思います。

于 2012-09-21T14:27:47.937 に答える