# ДоХтор (10.12.2016 / 20:49)
Beibarys, посмотри этот вариант, если он подходит, то можно остальной код, который должен выполняться, если все данные верны, добавить в условие (там прокомментровано).
Скопируй код целиком, и посмот
работает, но не так как надо
у меня можно ввести до 8 оценок. можно 5 оценок, можно 3 оценки вводить
а здесь например 8 оценок вводить обязательно, а то не работает
http://kaz-muz.kz/formula/rait.php
В общем разобрался
Самый ужасный код наверное))
if(($lab[0] != null && $lab[0] != strval(intval($lab[0])))){
Ошибка
}else{
не ошибка
}
И так каждый массив проверил ска(((
Beibarys,
у меня можно ввести до 8 оценок. можно 5 оценок, можно 3 оценки вводить
Надо было это в первом посту уточнить. Если завтра утром у меня будет время, то допишу код.
# Beibarys (11.12.2016 / 00:13)
В общем разобрался
Самый ужасный код наверное))
И так каждый массив проверил ска(((
Посмотри на этот вариант (+/-)
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$errors = [
'r1' => 'Введите оценки лабораторной работы!',
'r2' => 'Введите оценки практики!',
'r3' => 'Введите оценки СРО!',
'r4' => 'Введите оценки лекции!',
'rk1' => 'Введите оценку РК!'
];
$arr = array_map(function ($str) {
$array = array_filter(explode(' ', $str), function ($i) {
if (preg_match('~[0-9]~', $i)) {
return (strlen($i) <= 3);
}
});
return join(' ', $array);
}, $_POST);
$err = array_diff_key($errors, array_diff($arr, ['']));
if (!empty($err)) {
echo join('<br />', $err);
} else {
// Тут код, если введены данные без ошибок
}
}
echo '<form method="POST">
<p>Введите оценки лекции <b>(оценки вводить через пробел):</b></p>
<input type="text" name="r4" value="" /> <br/>
<p>Введите оценки практики <b>(оценки вводить через пробел):</b></p>
<input type="text" name="r2" value="" />
<p>Введите оценки СРО <b>(оценки вводить через пробел):</b></p>
<input type="text" name="r3" value="" />
<p>Введите оценки лабораторной работы
<b>(оценки вводить через пробел):</b></p>
<input type="text" name="r1" value="" />
<p>Введите оценку РК</p>
<input type="text" name="rk1" value="" /> <br /><br />
<button class="btn btn-info" name="send" />Считать</button><br /><br />
</form>
';
Тут плюс в том, что теперь можно вводить в каждое поле от одной и более оценок, при этом, если будет среди чисел текст, то он будет проигнорирован, т.е. в массив попадают только цифры. А так же, теперь учитывается длина числа. Если будет написана строка такого вида 44 5555, то в массив попадёт только 44. Если же первое число в строке будет больше допустимой длины (например 5555 а после него 44), то будет вызвана ошибка из массива $errors.