Home > Backend Development > PHP Tutorial > 表单 - 关于php $_GET接收多重参数的问题

表单 - 关于php $_GET接收多重参数的问题

WBOY
Release: 2016-06-06 20:50:57
Original
1055 people have browsed it

一个页面有两个

表单都是用get提交。
其中第一个表单的参数有$_GET['color']、$_GET['size']
第二个表单的参数有$_GET['page']

我希望实现:

第一个表单提交后得到?color=red&size=7
再提交第二个表单,能得到?color=red&size=7&page=3,反过来亦然

现在问题就是如果提交了其中任何一个表单,再提交另一个就会重置url

比如上面的场景,提交第二个表单的时候,只能得到?page=3

回复内容:

一个页面有两个

表单都是用get提交。
其中第一个表单的参数有$_GET['color']、$_GET['size']
第二个表单的参数有$_GET['page']

我希望实现:

第一个表单提交后得到?color=red&size=7
再提交第二个表单,能得到?color=red&size=7&page=3,反过来亦然

现在问题就是如果提交了其中任何一个表单,再提交另一个就会重置url

比如上面的场景,提交第二个表单的时候,只能得到?page=3

第二个表单用type=hidden的input中转参数

额,有点被你的需求搞的晕晕的了。话说其实你可以考虑用javascript的哦,因为你是get嘛,直接跳到相应的网址去不就好了么。下面是例子:

<script type="text/javascript">
    var color = document.getElementsByName('color')[0], size = document.getElementsByName('size')[0], page = document.getElementsByName('page')[0];
    document.getElementById('#input1').onclick = function() {
        window.location.href = '?color='+color+'&size='+size;
    }
    document.getElementById('input2').onclick = function() {
        window.location.href = '?color='+color+'&size='+size+'&page='+page;
    }
</script>
Copy after login

如果你想要保存input的值的话我觉得你可以考虑页面在新窗口中打开,就是说把window.location.href换成window.open这样,之前输入的值就还在了。当然,你还可以使用COOKIES来保存当前输入的值,这样你在一定时间内重新刷新了页面值也还是保存着的。简单的操作是这样的:

<script type="text/javascript">
    //setcookies函数和getcookies函数是从w3school上手动拷贝过来的
    //setcookies()用来设置cookies
    function setcookies(name, value, expiredays) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + expiredays)
        document.coolie = name + '=' + escape(value) + ((expiredays == null) ? '' : ';expires='+exdate.toGMTString());
     }
     //getcookies用来获取cookies,如果cookies不存在则返回空
     function getcookies(name) {
         if(document.cookie.length>0) {
             start = document.cookie.indexOf(name+'=');
             if(start != -1) {
                 start += name.length+1;
                 end = document.cookie.indexOf(';', start);
                 if(end == -1) {
                     end = document.cookie.length;
                 }
                 return unescape(document.cookie.substring(start, end);
             }
         }
         return "";
     }
     //沿用了上面的代码,没有再定义color, size, page三个变量了
     document.body.onload = function() {
         //input多的话可以考虑是循环~
         color.value = getcookies('color');
         size.value = getcookies('size');
         page.value = getcookies('page');
     }
     function setall() {
         setcookies('color', color.value, 7);
         setcookies('size', size.value, 7);
         setcookies('page', page.value, 7);
     }
     document.getElementById('input1').onclick = function() {
         setall();
     }
     document.getElementById('input2').onclick = function() {
         setall();
     }
</script>
Copy after login

思路大概就是这样子的吧,代码是现打的,没有测试过,不保证正确性就是,不过思路应该表示的比较清楚了。

你可以两个表单内都有这三个元素,隐藏起来不想显示出来的。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template