Я не могу понять, как 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>
Атрибут значения отсутствует. Должно быть так
<select class="form-control" id="contact" name="contact">
<option>select</option>
<option value="email">Email</option>
<option value="phone">Phone</option>
</select>
Тебе нужно 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;