【问题标题】:Post select option PHP发布选择选项 PHP
【发布时间】:2017-01-06 03:52:26
【问题描述】:

我不知道如何发布选择选项。该表单为联系人(选项)字段发布空值。我知道 selected_val 不正确,但不知道如何更正。

表单发布正常,但联系人返回一个空值。任何人都可以帮助如何更正PHP。

这里是 PHP

<?php
if (isset($_POST["submit"])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $city = $_POST['city'];
    $selected_val = $_POST['contact']; "You have selected :" .$selected_val;
    $message = $_POST['message'];
    $from = 'From your website'; 
    $to = 'somedomain.com'; 
    $subject = 'Visitor Inquiry';

    $body = "From: $name\n E-Mail: $email\n Phone: $phone\nCity: $city\nContact: $contact\nMessage: $message";

    // Check if name has been entered
    if (!$_POST['name']) {
        $errName = 'Please enter your name';
    }

    // Check if email has been entered and is valid
    if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errEmail = 'Please enter a valid email address';
    }

    // Check if business has been entered
    if (!$_POST['company']) {
        $errBusiness = 'Please enter your business or organization name';
    }

    // Check if phone has been entered
    if (!$_POST['phone']) {
        $errPhone = 'Please enter your phone number';
    }

    // Check if phone has been entered
    if (!$_POST['phone']) {
        $errPhone = 'Please enter the name of your city';
    }

    //Check if message has been entered
    if (!$_POST['message']) {
        $errMessage = 'Please enter your message';
    }

    // If there are no errors, send the email
    if (!$errName && !$errEmail && !$errMessage) {
        if (mail ($to, $subject, $body, $from)) {
            $result='<div class="alert alert-success">Thank You! 
            We will be in touch soon.</div>';
        } else {
            $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later.</div>';
        }
    }
}
?>

HTML

<form class="form-horizontal form-elements" role="form" method="post" action="services-form.php">           
    <div class="col-md-8 col-md-offset-2">
        <label for="contact">Contact preference</label>                                
        <select class="form-control" id="contact" name="contact">
            <option>Email</option>
            <option>Phone</option>
        </select>
    </div>
</form>

【问题讨论】:

  • 缺少值属性
  • 在使用之前检查POST 数据以确保它被发布。 echo "&lt;pre&gt;",print_r($_POST),"&lt;/pre&gt;"; - 永远不要忘记它只是一个数组。
  • 不确定我是否明白您的建议。可以举个例子吗?

标签: php twitter-bootstrap formmail


【解决方案1】:

value属性缺失应该是这样的

<select class="form-control" id="contact" name="contact">
 <option>select</option>
<option value="email">Email</option>
<option value="phone">Phone</option>
</select>

【讨论】:

  • 是的,确实是 - 呵呵!因此,在修复此问题后,选项值仍然没有发布任何内容。我认为这是不正确的: $selected_val = $_POST['contact']; "你选择了:" .$selected_val;
  • 您必须选择电子邮件或电话中的任何人,然后您必须提交表单,因为第一个选项为空。
  • 回声缺失 $selected_val = $_POST['contact']; echo "你选择了:" .$selected_val;
  • 我明白了,但这也不起作用。重新加载页面并选择选项第二个选项(电话),但它仍然没有发布任何内容。
  • print_r($_POST);出口;在目标页面上并了解所有帖子值
【解决方案2】:

选项标签上需要value

<option value="email">Email</option>
<option value="phone">Phone</option>

我在您的 HTML 中没有看到任何输入名称 submit

if( isset($_POST["submit"]) ) {

如果是这样,它甚至不会进入您的代码。

这行 PHP 代码也没有做任何事情。

"You have selected :" .$selected_val;

应该是

print "You have selected :" .$selected_val;

echo "You have selected :" .$selected_val;

【讨论】:

  • PHP 第一行
  • 是的,我在 PHP 中看到它,但在 HTML 中没有。您的 HTML 中可能需要 &lt;input type='hidden' name='submit' value='submit'&gt; 之类的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
  • 2021-12-06
  • 2021-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多