2013-02-25 140 views
0

我在PHP中獲取文本區域的值(獲取未定義)時出現問題。無法從PHP中的textarea獲取值

我的代碼很簡單。 我的HTML是:

<form name="contactform" method="POST" action="submit_form.php">  
<input type="text" class="formInput" placeholder="Your Name" id="first_name" maxlength="50" size="20" /> 
<input type="text" class="formInput" placeholder="Email Address" id="email" maxlength="80" size="20" /> 
<textarea class="formInput" placeholder="Your Message" name="comments" id="comments" maxlength="1400" cols="20" rows="6"></textarea> 
<input type="submit" id="SubmitContactForm" class="myButton" value="Submit" /> 
</form> 

我的PHP:

echo $_POST['comments']; 

這導致undefined,不管我寫的文字區域內。我在這裏搜索了一些解決方案,並找到了一些東西,比如添加「名稱」和「ID」,並使它們兩者不同,添加htmlspecialchars($_POST['comments'])等,所有這些解決方案都不起作用。我會做一個筆記,並說我可以沒有任何問題地獲得其他字段值,只是這個textarea。

任何想法可能是什麼問題?

+0

嘗試使用Firebug /您的瀏覽器開發工具,並檢查HTTP請求。查看該值是否正在發送。 – Jeff 2013-02-25 14:44:50

+1

你確定textarea元素在你的html表單裏面嗎? – 2013-02-25 14:44:50

+0

您的HTML在Textarea標籤上不包含名稱屬性。 – Jeff 2013-02-25 14:46:01

回答

1

您尚未定義textarea的名稱屬性。 地址:​​它:

<textarea class="formInput" name="comments" placeholder="Your Message" id="comments" maxlength="1400" cols="20" rows="6"></textarea> 

如果仍然沒有顯示出來,請確保您使用method="post"

0

你忘了添加的name屬性發送您的形式。你的HTML應該是這樣的

<textarea name="comments" class="formInput" placeholder="Your Message" id="comments" maxlength="1400" cols="20" rows="6"></textarea> 
+0

不起作用,不帶id或name屬性,即使兩者相等或不同, – Shai 2013-02-25 14:57:55

0
<textarea class="formInput" placeholder="Your Message" id="comments" maxlength="1400" cols="20" rows="6" name="yourtextarea"></textarea> 
+0

不起作用,不帶id或name屬性,即使兩者相等或不同也不行 – Shai 2013-02-25 14:57:16

1

您需要在您的textarea的name屬性 名= 「意見」

<textarea class="formInput" placeholder="Your Message" id="comments" name="comments" maxlength="1400" cols="20" rows="6"></textarea> 
+0

不起作用...我已經在發佈之前嘗試過。 – Shai 2013-02-25 14:56:30

+0

@Shai它必須使用name屬性,否則你的代碼中的其他東西是錯誤的。 – idmean 2013-02-25 15:08:23

0

嘗試添加該到腳本接收形式後:

print "POST: " . print_r($_POST, true) . "\n" 
    . "GET: " . print_r($_GET, true) . "\n"; 

如果「註釋」出現在「GET」下面, n您還沒有設置窗體的方法=張貼

+0

它顯示在下,[評論] => undefined – Shai 2013-02-25 14:56:06

+0

「未定義」通常從JavaScript彈出。你有沒有運行任何客戶端腳本?使用jQuery或其他庫? – stakolee 2013-02-25 15:49:56

-1

<textarea name="Address" rows="3" class="input-text full-width" placeholder="Your Address" ></textarea> 

刪除你的一些textarea類來

<textarea name="Address" rows="3" class="full-width" placeholder="Your Address" ></textarea> 

這取決於你的模板(模板購買)。 開發包含一些JavaScript以從UI 上的正確對象獲得價值,但對於像input-text這樣的元素,只需找到$('input[type=text]')

0

首先定義它像$comment=$_POST['comments'];後,你可以做你想做的, 注:不要直接使用它像$_POST['comments'];因爲在某些情況下,它會拋出一些錯誤的/通知等。