我在输入选择框中选择是或否选项后尝试发送邮件

时间:2017-03-09 22:08:45

标签: javascript php

我正在尝试向表单添加功能,当用户从选择列表中选择包含值 yes 的选项而不使用提交按钮时,该表单将提交。以下是链接:http://juiceme.no/phpmail/

<?php
//if "email" variable is filled out, send email
  if (isset($_REQUEST['email']))  {

  //Email information
  $admin_email = "syhunk835@gmail.com";
  $email = $_REQUEST['email'];
  $subject = $_REQUEST['subject'];
  $select = $_REQUEST['select'];

  //send email
  mail($admin_email, "$subject", $select, "From:" . $email);

  //Email response
  echo "Thank you for contacting us!";
  }

  //if "email" variable is not filled out, display the form
  else  {
?>

 <form method="post">
  Email: <input name="email" type="text" /><br />
  Subject: <input name="subject" type="text" /><br />
  Message:<br />
  <!--<textarea name="comment" rows="15" cols="40"></textarea><!-->
  <select id="select" name="select">
    <option value="yes">More View</option> 
    <option value="yes">Yes</option> 
    <option value="NO">No</option>
</select>
  <br />
  <input type="submit" value="Submit" />
  </form>

<?php
  }
?>

问题是,当用户在选择框中选择包含的选项时,我无法提交表单。

2 个答案:

答案 0 :(得分:0)

您可以将此内联JS添加到select下拉列表

onchange="if(this.value==='yes')this.form.submit()"

像:

<form method="post">

  Email: <input name="email" type="text" /><br />
  Subject: <input name="subject" type="text" /><br />
  Message:<br />

  <select id="select" name="select" onchange="if(this.value==='yes')this.form.submit()">
    <option value="yes">More View</option> 
    <option value="yes">Yes</option> 
    <option value="NO">No</option>
  </select>

</form>

jsBin demo

答案 1 :(得分:0)

我会添加一个onchange处理程序(并删除提交输入)。如果他们点击“是”,您可以提交到可以生成电子邮件的服务器,并且可以返回空表单。如果他们点击否,你不必做任何事情(或者你可以清除输入,这样他们可以再试一次,也许)。

您可以像这样获得您选择的价值:

$('#select').on('change', function() {
  if (this.value === 'Yes') {
    // submit to server so we generate an email
  } else {
    // do nothing or clear inputs?
  }
})