Вы можете использовать функции empty () и isset (). Если вы хотите, чтобы он работал с разными файлами, просто измените action='yourphp.php'
на html, который я вам даю, и store the PHP script
на этот файл yourphp.php
. Также вам нужно изменить index.html
на index.php
, чтобы активировать функции PHP.
PHP
<?php
error_reporting(0);
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: yoursite.com';
$to = 'contact@yoursite.com';
$subject = 'Customer Inquiry';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']){
if (!(empty($_POST['name']))) {
if (!(empty($_POST['email']))){
if (!(empty($_POST['message']))){
mail ($to, $subject, $body, $from);
echo '<p>Your message has been sent!</p>';
}else{
echo '<p>Fill your message please.</p>';}
}else {
echo '<p>Fill your email please.</p>';}
}else{
echo '<p>Fill your name please.</p>';}
}else{
echo '<p>Fill the form.</p>';}
?>
HTML
<html>
<form method="post" action="?">
<table>
<tr><td>Name</td><td><input type='text' name='name' id='name'/></td></tr>
<tr><td>Email</td><td><input type='text' name='email' id='email'/></td></tr>
<tr><td>Message</td><td><input type='text' name='message' id='message'/></td></tr>
<tr><td></td><td><input type='submit' name='submit' id='submit'/></td></tr>
</table>
</form>
</html>
С наилучшими пожеланиями!
Основываясь на вашей второй ссылке, вы можете сделать это следующим образом:
var selectId = document.getElementById("yourSelect");
selectId.onchange=function(){
var selectedValue = selectId.options[selectId.selectedIndex].value;
var selectedText = selectId.options[selectId.selectedIndex].text;
selectId.style.width = 20 + (selectedText.length * 8) + "px";
}
Преобразование в JavaScript и объяснение вашего первого примера ( http://jsfiddle.net/5AANG/4/ ).
Это создает временный элемент <span>
и копии стили из окна выбора в диапазон. Затем он измеряет ширину диапазона, устанавливает ширину окна выбора на основе этой ширины и удаляет диапазон из документа.
В обычном старом JavaScript:
Захватить все <select>
s:
var selects = document.querySelectorAll('select');
Добавьте наш слушатель событий (определенный ниже) к каждому:
for (var i = 0; i < selects.length; i++) {
selects[i].addEventListener('change', changeWidth);
}
Определите прослушиватель событий:
function changeWidth (e) {
Определения базовых переменных:
var select = e.target;
var o = select.options[select.selectedIndex];
var s = document.createElement('span');
Задайте содержимое нашего временного промежутка (s
) для содержимого выбранной опции:
s.textContent = o.textContent;
Приятная часть! Присвоение <span>
стилей выбранного параметра. getComputedStyle
)
var ostyles = getComputedStyle(o);
s.style.fontFamily = ostyles.fontFamily;
s.style.fontStyle = ostyles.fontStyle;
s.style.fontWeight = ostyles.fontWeight;
s.style.fontSize = ostyles.fontSize;
Добавить диапазон к документу, чтобы мы могли захватить его ширину:
document.body.appendChild(s);
Установите <select>
, основанная на ширине пролета (30 - магическое число, выведенное из вышеупомянутой скрипки).
select.style.width = (s.offsetWidth + 30) + 'px';
Quick! Удалите временный промежуток, прежде чем кто-нибудь его увидит!
document.body.removeChild(s);
}
Я написал этот ответ для другого потока, который только что был закрыт как дубликат этого. Проблема с этими ответами заключается в том, что они немного сложны и используют жестко закодированные значения дополнений, которые могут быть ненадежными. Вот мое решение, которое не требует каких-либо жестко закодированных.
Несмотря на то, что CSS и HTML не существует, достаточно простой способ сделать это - создать скрытый выберите, установите его только для выбранного значения, и возьмите эту ширину и установите ее на видимый выбор.
Выбор манекена в основном просто надежный метод для измерения того, насколько он должен быть.
Добавьте эту логику к «изменению», и она должна быть хорошей и вручную запускать ее один раз, затем вы должны быть хорошими.
const select = document.querySelector('select');
select.addEventListener('change', function() {
const dummySelect = document.createElement('select');
dummySelect.classList.add('dummy');
const dummyOption = document.createElement('option');
dummyOption.innerHTML = this.value;
dummySelect.appendChild(dummyOption);
document.body.appendChild(dummySelect);
select.style.width = `${dummySelect.offsetWidth}px`;
document.body.removeChild(dummySelect);
});
// Trigger for the first time
select.dispatchEvent(new Event('change'));
select {
display: inline;
}
.dummy {
position: absolute;
left: -10000px;
}
<select>
<option>A</option>
<option>A much longer title</option>
<option>Middleground</option>
</select>