空的GET变量显示在URL中 [英] Empty GET variables displaying in the URL

查看:96
本文介绍了空的GET变量显示在URL中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的表单:

 <?php 

echo'< form method =getaction =name =formulaire>';
echo'< input type =textname =info1title =value =/>';
echo'< input type =textname =info2title =value =/>';
echo'< input type =textname =info3title =value =/>';
echo'< input type =submitvalue =Envoyer/>';
echo'< / form>';

echo'$ info1 ='。$ _ GET [info1]。'< br />';
echo'$ info2 ='。$ _ GET [info2]。'< br />';
echo'$ info3 ='。$ _ GET [info3]。'< br />';

?>

我的问题是,提交后,所有变量都显示在URL中,即使它们是空的。

我希望非空变量只能显示在URL中。



有没有这样做与PHP的方式?

解决方案

像其他人一样,解决方案是使用JavaScript来改变表单时, 。这是你的例子,用JavaScript函数做到这一点:

 < html> 
< head>
< script type =text / javascript>
函数myFunction()
{
var myForm = document.getElementById('form-id');
var allInputs = myForm.getElementsByTagName('input');
var input,i; $(i = 0; input = allInputs [i]; i ++){
if(input.getAttribute('name')&&!input.value){


input.setAttribute('name','');
}
}
}
< / script>
< / head>

< form id =form-idmethod =getaction =name =formulaireonsubmit =myFunction()>
< input type =textname =info1title =value =/>
< input type =textname =info2title =value =/>
< input type =textname =info3title =value =/>
< input type =submitvalue =Envoyer/>
< / form>

<?php
echo'$ info1 ='。$ _ GET [info1]。'< br />';
echo'$ info2 ='。$ _ GET [info2]。'< br />';
echo'$ info3 ='。$ _ GET [info3]。'< br />';
?>
< / html>


Here is my form :

<?php

echo '<form method="get" action="" name="formulaire">';
echo '<input type="text" name="info1" title="" value="" />';
echo '<input type="text" name="info2" title="" value="" />';
echo '<input type="text" name="info3" title="" value="" />';
echo '<input type="submit" value="Envoyer" />';
echo '</form>';

echo '$info1 = '.$_GET["info1"].'<br />';
echo '$info2 = '.$_GET["info2"].'<br />';
echo '$info3 = '.$_GET["info3"].'<br />';

?>

My problem is that after submitting, all the variables are displayed in the URL, even if they are empty.

I would like the non-empty variables ONLY to be displayed in the URL.

Is there a way of doing that with PHP ?

解决方案

Like others have said, the solution is to use Javascript to change the form when its submited. Here is your example with a javascript function that does that:

<html>
<head>
<script type="text/javascript">
function myFunction()
{
    var myForm = document.getElementById('form-id');
    var allInputs = myForm.getElementsByTagName('input');
    var input, i;

    for(i = 0; input = allInputs[i]; i++) {
        if(input.getAttribute('name') && !input.value) {
            input.setAttribute('name', '');
        }
    }
}
</script>
</head>

<form id="form-id" method="get" action="" name="formulaire" onsubmit="myFunction()">
<input type="text" name="info1" title="" value="" />
<input type="text" name="info2" title="" value="" />
<input type="text" name="info3" title="" value="" />
<input type="submit" value="Envoyer" />
</form>

<?php
echo '$info1 = '.$_GET["info1"].'<br />';
echo '$info2 = '.$_GET["info2"].'<br />';
echo '$info3 = '.$_GET["info3"].'<br />';
?>
</html>

这篇关于空的GET变量显示在URL中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆