2015-06-03 31 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