0

私はフランス語なので、英語をお詫びします。URLの変数を使用してzendアプリケーションで問題が発生しました。ホテルのサービスのバックオフィスアプリケーションを作成しています。

説明:

「ID、名前、名など」などのユーザー情報をテーブルに設定する必要があります。管理者は、「削除」ボタンをクリックすると、一部のユーザーを削除できます。

私は新しいZFユーザーなので、「ビュー」から「コントローラー」に変数を送信する方法を学びました。

私の見解:

このコマンドで変数転送を設定しました。

<?php echo $this->url(array('controller'=>'moderation','action'=>'supprimer' , 'id' => $donnees['id']));?>">

それはうまく機能し、私の変数は私の「supprimerAction」にあり、それはクールです。私のURLはlocalhost/moderation / supprimer / id/2のようなものです

しかし、直後に別のリンクをクリックしてコントローラーを変更すると、変数はlocalhost / welcome / id/2のようにURLに残ります。

どうしてか分かりません...

この問題を解決するために、別のコントローラーなどを使用して別の新しいページを作成しました...など...同じことです。私の変数はまだ私のURLに表示されています...

私の問題が何であるかをあなたが理解しているかどうかはわかりませんが、私は2日からそれに取り組んでいます...

私のコード:

Moderation.phtml

 while ($donnees = $this->reponse->fetch())
         {
           if ($donnees['hotel_zone'] == 0)
              $donnees['hotel_zone'] = "Paris";
           else
              $donnees['hotel_zone'] = "Province";
              ?>
            <tr>
                  <td style="border-top:1px solid grey"> <?php echo $donnees['id'];?></td>
                    <td style="border-top:1px solid grey"> <?php echo $donnees['hotel_name'];?></td>
                    <td style="border-top:1px solid grey" ><?php echo $donnees['id_availpro'];?></td>
                    <td style="border-top:1px solid grey" ><?php echo $donnees['c_name'];?></td>
                    <td style="border-top:1px solid grey" ><?php echo $donnees['c_email'];?></td>
                    <td style="border-top:1px solid grey" ><?php echo $donnees['c_url'];?></td>
                    <td style="border-top:1px solid grey" ><img src="<?php echo $this->baseUrl;?>/public/css/yes.gif"></td>
                    <td style="border-top:1px solid grey" ><a href="<?php echo $this->url(array('controller'=>'moderation','action'=>'supprimer' , 'id' => $donnees['id']));?>"><img src="/public/img/no.png"></a>
              </tr><?php
         }

ModerationController:

<?php
class ModerationController extends Zend_Controller_Action 
{
   /*function init(){ $this->view->baseUrl = $this->_request->getBaseUrl(); }*/

function indexAction()
{

   //echo $this->getRequest()->getParam('id');

      try
     {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=myloocalhost;dbname=fhg_bo', 'root', '', $pdo_options);
     }
     catch (Exception $e)
     {
             die('Erreur : ' . $e->getMessage());
     }
     $this->view->reponse = $bdd->query('SELECT id, hotel_name, hotel_city, hotel_zone, c_title, c_name, c_fname, id_availpro, c_email, c_phone, c_url FROM nouveau_client');
      $this->view->nb_mod = $bdd->query('SELECT COUNT(*) FROM nouveau_client GROUP BY id');
}
function supprimerAction ()
{
   echo $this->getRequest()->getParam('id');
}
}
?>

したがって、この変数を受け取ったとき、および別のリンクをクリックしたとき、変数はまだURLに残っています...変数がプログラムに記憶されているようです...。

私を助けてくれてありがとう、

繰り返しになりますが、私の英語は申し訳ありませんが、質問に答えるために最善を尽くします。

ありがとう

4

1 に答える 1

2

URLビューヘルパーにパラメータを追加する必要があります。

<?php echo $this->url(array(
        'controller'=>'moderation',
        'action'    =>'supprimer' , 
        'id'        => $donnees['id']), null, true); // true = RESET PARAMS
?>
于 2012-05-24T09:12:25.757 に答える