if ((!name) && (!$email) && (!topic) && (!$message)) {$answer=0;}
elseif (!mail(отправляет)) {$answer=0;}
else {$answer=1;}
echo $answer;
if(answer==0){$(".clear").css("border-color","red");}
else{$('.clear').val('');}
И как ещё можно написать "если все поля формы пусты" кроме (!name) && (!$email) && (!topic) && (!$message)?
$answer = false;
$fields = ['name', 'email', 'topic', 'message'];
foreach($fields as $field)
{
$$field=trim($$field);
if(false===(empty($$field))) // Если поле не пустое, значит надо пробовать отправлять (исправил !empty() на 'false===empty()" см. коммент от @FanatPHP )
{
$mail_send = true || false;# здесь код отвечающий за отправку мыла
if($mail_send)
$answer=true;
break; // выходим из цикла независимо от результата отправки
}
}
var answer = 0;
if (a === 0) {
$(".clear").css("border-color", "red");
} else {
$('.clear').val('');
}
<?php
/**
* Validates some data against some constraints set in @a $validationMapping
* @param array $validationMapping Constraints with structure ['fieldName' => 'callback']
* @param array $data Data to validate with structure ['fieldName' => 'fieldData']
* @param bool $stopOnError Whether to stop on first occured error
* @return bool|array True if validation passed, array of fields with errors (['fieldName' => 'validationResult']) otherwise
*/
function validate(array $validationMapping, array $data, $stopOnError = false) {
$hasErrors = false;
$fieldsWithErrors = [];
foreach ($validationMapping as $fieldName => $validator) {
$validationResult = $validator(isset($data[$fieldName]) ? $data[$fieldName] : null, $fieldName);
if ($validationResult !== false) {
$hasErrors = true;
$fieldsWithErrors[$fieldName] = $validationResult;
}
if ($stopOnError && $hasErrors) {
break;
}
}
return count($fieldsWithErrors) ? $fieldsWithErrors : true;
}
// example
function notEmptyValidator($fieldData, $fieldName) {
return empty($fieldData) ? sprintf('%s is empty!', $fieldName) : false;
}
function lengthValidatorFactory($minValue = null, $maxValue = null) {
return function ($fieldData, $fieldName) use ($minValue, $maxValue) {
if (!isset($fieldData)) {
return isset($minValue) ?
($minValue > 0 ? sprinf('%s must be longer than %d', $fieldName, $minValue) : false) :
false;
}
if (isset($minValue)) {
if (mb_strlen($fieldData) < $minValue) {
return sprinf('%s must be longer than %d', $fieldName, $minValue);
}
}
if (isset($maxValue)) {
if (mb_strlen($fieldData) > $maxValue) {
return sprinf('%s must be shorter than %d', $fieldName, $maxValue);
}
}
return false;
};
}
$result = validate([
'name' => 'notEmptyValidator',
'password' => lengthValidatorFactory(4),
'email' => lengthValidatorFactory(4, 20),
], $POST['someForm']);
if ($result === false) {
echo 'Success!';
} else {
echo '<ul><li>' . implode('</li></li>', $result) . '</li></ul>';
}