通过电子邮件在下拉列表中选择的值

时间:2014-10-06 21:39:29

标签: php jquery

我有一个通过电子邮件发送几个输入字段的联系表单,但我很难找到从下拉列表中检查值的正确方法。

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();

2 个答案:

答案 0 :(得分:2)

您的代码存在一些问题。

  • 您的代码/发布的问题中似乎没有<form></form>个标记,添加;它们没有出现在你的问题中,所以目前还不确定你是否使用它们。

  • 您的表单应为method="post",包括操作。即: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" />

<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">

<强> N.B:

现在,如果未示出的 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 :(得分: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>