2013-04-05 20 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'] ?>