2015-06-03 73 views
-2

在閱讀了這裏的許多帖子後,關於如何捕獲我的html表單中的Select值,我理解了原理,但我似乎無法在下面的代碼中完美地執行它。
$ selected_val未被追加。也許它是空的?我錯過了什麼?提前致謝。無法捕獲表單選擇值,php

期望的結果:
[email protected]A-用戶

當前結果:
[email protected]是,

下面是如何我的HTML表單看起來如下:

<form method="POST" class="subscription-form form-inline id="subscribe" role="form"> 

<h4 class="subscription-success"><i class="icon_check"></i> Thank you for requesting... </h4> 
<h4 class="subscription-error">Something Wrong!</h4> 

<select name="usertype" class="form-control input-box"> 
    <option selected value="A-user">I'm an A user</option> 
    <option value="B-user">I'm an B user</option> 
    <option value="C-user">I'm an C user</option> 
</select> 
<input type="email" name="email" id="subscriber-email" placeholder="Your Email" class="form-control input-box"> 

<button type="submit" name="submit" id="subscribe-button" class="btn btn-default standard-button">Submit</button> 

</form> 

這裏是我的PHP:

<?php 
    if (isset($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 

    $selected_val = $_POST['usertype']; // Storing Selected Value In Variable 

    $e_mail = $_POST['email'] . " is a " . $selected_val . " ," . "\n"; 
file_put_contents('email-list.txt', $e_mail, FILE_APPEND | LOCK_EX); 
} 
?> 
+1

哪裏是表格標籤 –

+0

現在會發生什麼? – chris85

+2

您的'

'缺少'method =「POST」'。沒有它,默認是'method =「GET」'。 – Sean

回答

1

您的形式缺少方法屬性

Post方法應該是有

<form action="your.php" method="post"> 
1

<form>元素應該有method屬性像

<form method="POST" class="subscription-form form-inline wow fadeInRight animated" data-wow-offset="10" data-wow-duration="1.5s" id="subscribe" role="form"> 

而且注意y中的我們的PHP代碼,用戶將點擊提交按鈕,查看

if (isset($_POST['submit'])) { 
    selected_val = $_POST['usertype']; // Storing Selected Value In Variable 
    $e_mail = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); 
    $e_mail = $e_mail . " - is a - " .$selected_val . " ," . "\n"; 
    file_put_contents('email-list.txt', $e_mail, FILE_APPEND | LOCK_EX); 
    } 
+0

感謝提供'方法'屬性的提示。我添加了它並更新了我的帖子。但是這並沒有解決我期望的問題。關於你的PHP建議,我得到你在說什麼,但我仍然想檢查輸入字段是否設置並驗證它。你似乎刪除/替換我需要的代碼。 – SlurBeast

+0

只有當用戶點擊提交按鈕時,纔會提交這些值,因此您可以檢查是否設置了$ _POST ['submit'],並且您可以檢查是否設置了$ _POST ['email'] – Abhinav

+0

First總之,你得到的錯誤是什麼? – Abhinav