网址&变量问题

时间:2012-05-24 09:03:29

标签: php html zend-framework

我是法国人,所以为我的英语道歉。 我在我的zend应用程序中遇到了一些URL中的变量问题。我正在为酒店的服务创建一个后台应用程序。

解释:

我要设置一个包含用户信息的表,例如“id,name,first name等......” 管理员可以在点击“删除”按钮时删除一些用户。

因为我是新的ZF用户,所以我学习了如何将变量从“视图”发送到“控制器”

我的观点:

我已使用此命令设置变量传输。

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

它工作正常,我的变量在我的“supprimerAction”中,很酷。 我的网址类似于localhost / moderation / supprimer / id / 2

但是,当我点击另一个链接,更改控制器时,我的变量仍然在我的URL中,如localhost / welcome / id / 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');
}
}
?>

所以,当我收到这些变量时,当我点击另一个链接时,我的变量仍然在我的网址中......就像变量记忆在我的程序中一样....

感谢您的帮助,

再一次,对不起我的英语,我会尽力回答问题。

由于

1 个答案:

答案 0 :(得分:2)

您必须向URL View Helper添加更多参数:

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