2014-10-06 54 views
-1

我有一個聯繫表單,它通過電子郵件發送幾個輸入字段,但我正在努力尋找從下拉列表中檢查值的正確方法。在下拉列表中選擇電子郵件發送方式

HTML

<label for="email"><span>E-mail:</span> 
<input type="email" name="email" id="email" placeholder="Your e-mail" /> 
</label> 


<label for="phone"><span>Tlf:</span> 
<input type="text" name="phone" id="phone" placeholder="Your number" /> 
</label> 

<label for="service"><span>Service:</span> 
<select class="service" id="service"> 
<option value="choose">Choose</option> 
<option value="Option1">Option1</option> 
<option value="Option2">Option2</option> 
<option value="Option3">Option3</option> 
<option value="Option4">Option4</option> 
</select> 
</label> 

PHP

if(!isset($_POST["userEmail"]) || !isset($_POST["userPhone"]) || !isset($_POST["userService"])) 
{ 
    $output = json_encode(array('type'=>'error', 'text' => 'Fields are empty')); 
    die($output); 
} 

所以我做錯了使用$ _ POST的下拉?

編輯:

這裏是我的jQuery

var user_name  = $('input[name=name]').val(); 
    var user_email  = $('input[name=email]').val(); 
    var user_phone  = $('input[name=phone]').val(); 

所以我想我錯過了什麼是這樣的:

var user_service = $('select[name=service]').val(); 
+0

缺少'

2014-10-06 21:42:40

+0

不,這不是完整的html。我只添加了我認爲是錯誤的腳本。這完全沒有下拉驗證工作,所以在我的PHP或下拉列表中的一些錯誤。 – user3707281 2014-10-06 21:45:32

+0

你忘了名字屬性! – yellowsir 2014-10-06 21:48:40

回答

0

<select>標籤不具有name財產。

請修改代碼:

<label for="service"><span>Service:</span> 
<select class="service" id="service" name="userService"> 
<option value="choose">Choose</option> 
<option value="Option1">Option1</option> 
<option value="Option2">Option2</option> 
<option value="Option3">Option3</option> 
<option value="Option4">Option4</option> 
</select> 
2

有你的代碼的幾個問題。

  • 你似乎沒有<form></form>標籤在你的代碼/貼出的問題,添加它們;他們沒有顯示在你的問題中,所以目前還不確定你是否使用它們。

  • 你的表單應該是method="post"包括一個動作。 I.e .: action="handler.php"

  • 您的<select>未被命名。

  • 您使用了錯誤的POST變量相比,你的條件語句:

這是你目前正在使用的是什麼:

if(!isset($_POST["userEmail"]) || !isset($_POST["userPhone"]) || !isset($_POST["userService"])) 

看看這個:

<input type="email" name="email" id="email" placeholder="Your e-mail" /> 

and

<input type="text" name="phone" id="phone" placeholder="Your number" /> 

至於它們如何與條件語句不匹配。

他們需要匹配按照修改的條件語句的變量:

if(!isset($_POST["email"]) || !isset($_POST["phone"]) || !isset($_POST["userService"])) 

在修改/命名您的選擇爲:

<select class="service" id="service" name="userService"> 

注::

現在,如果您的其餘未顯示 PHP代碼使用相同的POST變量,那麼他們都需要匹配我在這裏發佈的內容。你需要這樣做,因爲我不知道你的其他代碼是什麼樣的。

如果你的PHP代碼的其餘部分使用這些POST變量$_POST["email"]$_POST["phone"]$_POST["userService"]那麼你就需要改變你的投入:

<input type="email" name="userEmail" id="email" placeholder="Your e-mail" /> 

<input type="text" name="userPhone" id="phone" placeholder="Your number" /> 

,同時保持你現在的條件語句:

if(!isset($_POST["userEmail"]) || !isset($_POST["userPhone"]) || !isset($_POST["userService"])) 

已使用error reporting本來會發出Undefined index警告。

將錯誤報告添加到文件頂部,這將有助於生產測試。

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
+1

除此之外,它的一切都很好:-) – 2014-10-06 22:27:12

+0

@Dagon謝謝:) – 2014-10-06 22:27:59

+0

對不起,我的錯誤不是發佈整個代碼。我的jquery分配了正確的post變量。我將編輯我的原始帖子以顯示。 – user3707281 2014-10-07 06:14:43

相關問題