2013-04-05 19 views
-1

我有一个文本字段和一个提交按钮,当我点击提交按钮,我想添加到我的查询字符串。PHP添加到提交查询字符​​串

例如

http://www.fakewebsite.com/?name=mike

但我的名字出现空白

这是我的代码

<?php 

if($_POST){ 


    echo $_POST['name']; 




}else{ ?> 


    <form action="http://www.fakewebsite.com/test.php?name=<?php $_SERVER['name']; ?>" method="post"> 
    <label for="name">Name</label><input type="text" name="name" id="name" /> 
    <input type="submit" name="submit" id="submit" /> 
    </form> 


<?php } ?> 
+1

为什么'$ _SERVER'? – elclanrs 2013-04-05 04:55:14

+0

使用方法get而不是post – 2013-04-05 04:58:22

+0

使用'method =“get”' - '

' - 参见http:// www.w3.org/TR/html401/interact/forms.html#h-17.3 – Sean 2013-04-05 04:58:55

回答

0

备用溶液

<?php 

if(!empty($_POST)){ 

    echo $_POST['name']; 

}else{ ?> 


    <form action="http://www.fakewebsite.com/test.php" method="post"> 
    <label for="name">Name</label><input type="text" value="<?=$_SERVER['name']; ?>" name="name" id="name" /> 
    <input type="submit" name="submit" id="submit" /> 
    </form> 


<?php } ?> 
+0

请记住,在PHP $ _POST中始终存在。可能要检查if(!empty($ _ POST))是否为空; – 2013-04-05 05:04:07

+0

你复制了提到的问题3.'<?php $ _SERVER ['name']?>'不输出任何内容。回声丢失 – scones 2013-04-05 05:08:23

+0

@ user2247178它是为你工作吗? – 2013-04-05 05:09:57

1

POST请求不同于GET请求在他们如何发送数据到服务器方面。

与获取数据元素被追加到URL(就像你尝试过)。

with post数据元素在http请求的主体内。

这是问题1:您试图将参数作为get参数传递。这可以工作,但不保证。

另一件事是,你有一个输入字段相同的名称name。所以,即使第一件事情会起作用,输入字段也会覆盖该数据。

你能做些什么狐狸呢?您可以添加具有不同名称的隐藏输入字段,以将此输入发送回您的服务器:

<form action="foo.php" method="post"> 
    <input type="hidden" name="other_name" value="<?= $_SERVER['name'] ?>" /> 
    <input type="text" name="name" value="" /> 
    <input type="submit" /> 
</form> 

并且还检查名称冲突。

编辑:

,只是在我看来<? $_SERVER['name'] ?>的第三个问题不中$_SERVER['name']不输出数据。

要做到这一点,你应该使用

<?php echo $_SERVER['name'] ?> 

// or, works sometimes 

<?= $_SERVER['name'] ?>