2010-04-26 66 views
0

有一個小問題,這個代碼

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<?php 
... 
echo '<input name="textfield" type="text" id="textfield" value="Roger" />'; 
echo 'Hello, '.$_POST['textfield'].'<br>'; 
... 
?></p> 
</form> 

應該呼應了「你好,羅傑」,羅傑是默認值,但它給出了唯一的「你好, 「而沒有別的。有什麼建議麼?

編輯:是的,有一種形式。

謝謝!

+0

我舉辦了一個表格,不是嗎? – joanballester 2010-04-26 11:31:52

+0

我們需要看到更多的代碼。檢查Firebug中的頁面以確保POST數據實際上正在發送。 – 2010-04-26 11:32:14

+0

我們可以安全地假設第二個回聲語句正在包含第一個頁面的頁面的帖子上執行嗎? – 2010-04-26 11:32:58

回答

7

您迴盪文本框,並在同一時間希望能得到它的價值,這是不可能的。

echo '<input name="textfield" type="text" id="textfield" value="Roger" />'; 
echo 'Hello, '.$_POST['textfield'].'<br>'; 

您需要先提交表單,方法設置爲post,然後才能獲得其價值。

例子:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
... 
<input name="textfield" type="text" id="textfield" value="Roger" /> 
... 
<input name="submit" type="submit" id="submit" value="submit" /> 
</form> 

PHP

if (isset($_POST['submit'])) 
{ 
    echo 'Hello, '.$_POST['textfield'].'<br>'; 
} 
+0

謝謝你!現在它可以工作。但是有沒有辦法讓php在沒有按下'submit'按鈕的情況下回顯默認值(或者輸入一個新的值)? – 2010-04-26 11:46:16

+0

@ user296516:只有在提交表單時才能獲取值。如果你的意思是不提交表單,那麼你可以使用javascript,但它不會被PHP使用。 – Sarfraz 2010-04-26 11:49:02

+0

是的,說'if(!isset($ _ POST ['submit'])){echo'Hello,Roger。'; }' – 2010-04-26 12:13:20

3

嘗試print_r($_POST)var_dump($_POST)查看是否有任何POST數據被提交。

編輯:您是否將POST指定爲表單標記中的提交方法?你提交表格嗎?請顯示整個<form> -Tag。

+1

+1,var_dump()! – 2010-04-26 11:34:23

0
  • 檢查CSS(是隱藏..?=
  • 檢查源的頁面(不輸入字段出現?)
  • 不要忘記包裹輸入你的表單要提交回到同一頁面。
2

如果是這樣,就是這樣,你的代碼的問題是,由於沒有表單提交的$ _POST並沒有被設定。

0

我的猜測是,服務器沒有分配$_GET和/或$_POST。你可以在php配置中檢查。

看看您是否可以通過$_REQUEST訪問數據,這應該統一獲取和發佈數據。

+1

但是不要在生產中使用'$ _REQUEST',僅用於調試。在實時系統中使用它是不好的做法。 – 2010-04-26 11:44:10