2017-01-06 3 views
1

Я не могу понять, как выбрать POST. Форма отправляет пустые значения для поля контакта (опции). Я знаю, что 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> 
+0

атрибут отсутствует – JYoThI

+0

Проверить 'данные Post' перед использованием чтобы убедиться, что это сообщение редактор 'echo"

",print_r($_POST),"
";' - никогда не забывайте, что это всего лишь массив. – Jek

+0

Не уверен, что получаю то, что вы предлагаете. Можете ли вы привести пример, пожалуйста? – ControlZ

ответ

1

Вы должны value по опционам тегов.

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

И я не вижу никакого имени входного submit в вашем HTML

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

Если да, то это даже не идти в свой код.

Также эта строка вашего кода PHP ничего не делает.

"You have selected :" .$selected_val; 

должен быть

print "You have selected :" .$selected_val; 

или

echo "You have selected :" .$selected_val; 
+0

первая строка PHP ControlZ

+0

Да, я вижу это на PHP, но не в HTML. вам может понадобиться нечто вроде '' в вашем HTML. – Hereblur

3

значение атрибута отсутствует Это должно быть, как это значение

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

Yup sure it - duh! Поэтому после фиксации это значение параметра все равно ничего не публикует. Я думаю, что это неверно: $ selected_val = $ _POST ['contact']; «Вы выбрали:». $ Selected_val; – ControlZ

+1

вам нужно выбрать кого угодно, будь то по электронной почте или телефону, тогда вы должны отправить форму, потому что первый optin пуст. – JYoThI

+0

echo missing $ selected_val = $ _POST ['contact']; echo "Вы выбрали:". $ selected_val; – JYoThI

Смежные вопросы