2013-04-10 106 views
1

我有這樣的形式和我的$ _ POST數據不通過駛來的問題(空($ _ POST)!):如果不工作

形式:

<form action="" id="contact-form" method="post"> 

      <input id="nombre" size="16" type="text" placeholder="Nombre"> 

      <input id="email" size="16" type="text" placeholder="Email"> 

      <textarea id="texto"></textarea> 

      <input type="submit" value="Enviar"> 

PHP:

<?php 

if(!empty($_POST) { 

echo "YES"; 

} else { 

echo "NO"; 

} 

?> 

當我完成並提交所有字段時,它總是迴應「否」。

+2

您需要爲您的輸入字段指定'name'屬性 – Ejaz 2013-04-10 21:33:39

+0

您還應該檢查您的語法,在'if'子句中錯過了右括號。 – 2013-04-10 21:34:34

+0

感謝您的幫助! :) – user1925226 2013-04-10 21:54:53

回答

3

您錯過了輸入字段的name屬性。改變你的HTML,並將它們添加:

<form action="" id="contact-form" method="post"> 
    <input id="nombre" name="nombre" size="16" type="text" placeholder="Nombre"> 
    <input id="email" name="email" size="16" type="text" placeholder="Email"> 
    <textarea id="texto" name="texto"></textarea> 
    <input type="submit" value="Enviar"> 

注意,id屬性不是必需的。如果你不需要它來用於其他目的,比如在樣式表或javascript中使用它,你可以忽略它。只需發送表格name屬性是必需的

+0

哦,我的天啊..它太簡單了,就在我眼前...我是一個新手,你應該明白..嘿..非常感謝。 .everyone幫助我.. :) – user1925226 2013-04-10 21:48:13

+0

級別完成。進入下一個錯誤! :)快樂的編碼! :) – hek2mgl 2013-04-10 21:49:48

0

您的輸入應該有name屬性設置,它將它們設置在$ _POST數組中。在發佈表單中忽略id

<input id="nombre" size="16" type="text" placeholder="Nombre" name="nombre"> 

,你會得到它$ _ POST [ '農佈雷']

1

如果你想要一個特定的領域,嘗試:

if(isset($_POST['field']{0})){ 

如果要檢查多個字段POST,嘗試:

if(count($_POST)>0){ 
+0

總是一個白癡誰來這裏賺「分數」,爲什麼其他負面答覆。唯一的原因是幫助和分享,而不是與導入'分數'。 – 2013-04-10 22:17:49

+0

對不起Guilherme ......我對此無能爲力......我還沒有投票權......但令人難以置信的是,網站上有那麼多愚蠢的人被用來幫助其他人而不是拿他們失望......你的回答也是有效的..我剛剛嘗試過...... – user1925226 2013-04-10 23:28:34

+0

感謝您回覆我的評論。 我真的不關心選票,但不擔心這不是你的責任。祝你好運。 – 2013-04-11 13:14:33

0

這是一個替代的解決方案,如果添加「命名」屬性對您的輸入,它應該工作:

if (count($_POST) == 0) { 

     echo "YES"; 
    } 
    else { 

     echo "NO"; 

     } 
-1

你需要指定一個變量,所以$_POST['email']例如。對於所有的領域嘗試;

if(!empty($_POST['Nombre']) && !empty($_POST['email']) && !empty ($_POST['texto'])) { ...

對不起,我在移動設備上,這樣的痛苦讓所有拼寫正確。