Javascript ZF 1.9从前端html重定向

Javascript ZF 1.9从前端html重定向,javascript,php,redirect,zend-framework,Javascript,Php,Redirect,Zend Framework,我的front.html或.tpl页面中有以下内容: <select name="" id="selectBox" class="fancyDrop" onchange="showFunc()"> <option selected></option> <option value="20"><?php echo $this->translate('по 20');?></option> <o

我的front.html或.tpl页面中有以下内容:

<select name="" id="selectBox" class="fancyDrop" onchange="showFunc()">
    <option selected></option>
    <option value="20"><?php echo $this->translate('по 20');?></option>
    <option value="50"><?php echo $this->translate('по 50');?></option>
    <option value="100"><?php echo $this->translate('по 100');?></option>
    <option value="<?php echo $this->totalValue;?>"><?php echo $this->translate('Text');?></option>
</select>
..........................................................................
<script type="text/javascript">
function showFunc() {
    var selectBox = document.getElementById("selectBox");
    var selectedValue = selectBox.options[selectBox.selectedIndex].value;
    window.location.href = "<?php echo $this->url(); ?>?perPage=" + selectedValue;
}
</script>


我想将
showFunc()
更新为
window.location.href=window.location.href+“?perPage=“+selectedValue将请求转发给
当前页面,选择perPage作为选项。但是这种方法有一些问题

  • 当用户再次从转发页面选择该选项时,将再次追加每页的
    。因此,必须首先删除perPage参数。
    为此,您可以使用这些SO帖子中的任何方法

  • “这样用户就不会看到这个值。”=>据我所知,您不希望用户看到每个页面的值。然后可以将所选值存储在cookie中 从php中,您可以使用
    $\u COOKIE['perPage']
    访问每页值。showFunc()将类似于

    function showFunc() {
    var selectBox = document.getElementById("selectBox");
    var selectedValue = selectBox.options[selectBox.selectedIndex].value;
    
    var d = new Date();
    d.setTime(d.getTime() + (1*24*60*60*1000));
    document.cookie = "perPage=" + selectedValue + "; " + "expires=" + d.toUTCString();;
    
    window.location.href = window.location.href;
    }
    
    但是您将无法通过
    $this->\u getParam('perPage)
    访问它。为此,您必须使用
    $\u COOKIE


  • 我认为在函数showFunc()中,
    window.location.href=window.location.href+“?perPage=“+selectedValue是否需要如果只使用js是的,您是对的,但生成的链接也是。我的目标是使用
    $this->\u getParam('perPage
    )在控制器中实现和检索。我稍后会尝试,是否可以使用Zend\u Http\u Cookie?没有js代码?我的意思是使用和onChange触发php函数不是JavaScript函数你不能从onChange事件或任何其他js事件触发php函数。你能做的最好的事情就是在这些事件上调用ajax,这在这个场景中似乎是不必要的。你不想使用JS有什么原因吗?没有,当我再次选择value
    $\u COOKIE['perPage']
    时,如果选中,它会变为20;如果选中,它会变为50;如果选中,它不会像你在第一点中提到的那样追加。根据第一点,应该是20501000…,如果我正确理解append的功能的话。