通过改变选择但不通过Ajax调用控制器的动作(Zend框架)

时间:2012-03-29 11:05:56

标签: php model-view-controller zend-framework zend-controller

我的视图中有一个带有选项的html选项。onchange我想调用我的控制器的动作。 重要:我不打算通过Ajax这样做,因为onchange我的整个模块正在改变所以我想每次刷新页面。

                   <select id="p_s">
                   <?php  foreach($this->active_services as $row){ ?>
                    <option value="<?php echo $row['ph_id'];?>"><?php echo $row['ph_name'];?></option>
                      <?php }?>
                    </select> 

我正在调用的动作还包括以下代码,所以我不打算通过ajax来实现。

            if(!$this->_request->isXmlHttpRequest()){
             //The request was not  made with JS XmlHttpRequest
              $user = new Zend_Session_Namespace('user');
              $user_id =$user->user_id;  
              $object   = new Services();
              $active_services     = $object->Get_Current_User_Active_Services($user_id);
              $this->view->assign('active_services',$active_services );
            }

我正在调用的动作是通过ajax和normal调用这次我称之为正常。 任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:2)

<select id="p_s">
    <?php foreach($this->active_services as $row) : ?>
        <option value="<?php echo $this->url(array(
                "module" => "yourModule",
                "controller" => "yourController",
                "action" => "yourAction",
                "p_s" => $row['ph_id']
            ),
            $yourRouteName=null,
            $reset=true); 
            ?>
         ">
            <?php echo $row['ph_name'];?>
        </option>
    <?php endforeach ?>
</select>

然后

$("#p_s").change(function() {
    window.location.href = $(this).val();
});