Создание полей формы непустыми и вычисление средних значений из данных формы с использованием некоторых пустых полей с использованием php

0

Я пытался: (i) сделать мои поля форм непустыми, используя php-скрипты, и (ii) рассчитать среднее число числовых данных формы, вставленных в массив, и элемент массива может быть пустым. Например, предположим, что форма используется для сбора оценок учащихся, некоторые ученики могут не предлагать дополнительный предмет. Как адаптировать функцию count() в этом случае - моя головная боль. Я признаю, что некоторые люди задавали вопросы, которые частично рассматривались, но некоторые вопросы остаются нерешенными, следовательно, этот пост. Вкратце: (i) приведенный ниже код выполняется, даже если некоторые поля формы пусты, по моему желанию. (Ii) Если я предоставляю некоторые поля формы пустыми; результат среднего расчета неверен; также против моего желания Код:

<?php
$name = $_POST['candidate'];
$Eng_CA = $_POST['Eng_CA'];
$Eng_Ex = $_POST['Eng_Ex'];
$Math_CA = $_POST['Math_CA'];
$Math_Ex = $_POST['Math_Ex'];
$Comp_CA = $_POST['Comp_CA'];
$Comp_Ex = $_POST['Comp_Ex'];
$engSum = $Eng_CA + $Eng_Ex;
$mathSum = $Math_CA + $Math_Ex;
$compSum = $Comp_CA + $Comp_Ex;
$tot = array();
$tot[] = $engSum;
 $tot[]=  $mathSum;
$tot[] = $compSum;
 $total = array_sum($tot);
 $Average = $total/count($tot); // Average is incorrcet if some fields are empty
$notEmpty = array();

$notEmpty = array('$name', '$Eng_CA', '$Eng_Ex', '$Math_CA', '$Math_Ex', '$Comp_CA', '$Comp_Ex');

foreach ($notEmpty as $notEmp){ // this is not working; code executes anyway

HTML

<form action ='test_Code.php' method ='post'>
<table width ='600'>
<tr><td> Cand Name</td><td colspan ='2'><input type ='text' name = 'candidate' size = '60'></td></tr>
<th>Subject</th><th>CA</th><th>Exam</th>

<tr><td>Eng</td><td><input type ='text' name = 'Eng_CA'/></td><td><input type ='text' name = 'Eng_Ex'/></td></tr>

<tr><td>Math</td><td><input type ='text' name = 'Math_CA'/></td><td><input type ='text' name = 'Math_Ex'/></td></tr>

<tr><td>Computer</td><td><input type ='text' name = 'Comp_CA'/></td><td><input type ='text' name = 'Comp_Ex'/></td></tr>

if(empty($notEmp)){
    echo"You have left some fields empty, fill them pls";
die();

}

}
echo"<table border ='1'>";
echo"<th>Candidate</th><th>Eng Ca</th><th>Eng Ex</th><th>Math Ca</th> <th>Math Ex</th> <th>Comp Ca</th><th>Comp ex</th><th>Total</th><th>Average</th>";
echo"<tr><td>";
echo $name ."</td><td>".$Eng_CA."</td><td>".$Eng_Ex."</td><td>".$Math_CA."</td><td>".$Math_Ex."</td><td>".$Comp_CA."</td><td>". $Comp_Ex."</td><td>".$total."</td><td>".$Average."</td></tr></table>";

?>
  • 0
    Почему вы не проверяете пустые поля в Javascript? И вы также можете проверить, являются ли они пустыми в PHP, прежде чем присваивать их переменным.
Теги:
arrays
foreach
count

1 ответ

2
Лучший ответ

Твоя попытка сделать не пустую проверку мне странным способом. То, что я сделаю лично, - это просто пропустить ваши ваги $ _POST. Проверьте их, если они пусты. Если так умирают или ошибаются. пример:

    <?php
    if(!empty($_POST)): //this is how trigger the processes for any form

    foreach($_POST as $k => $v):
       if(empty($v)){
            echo $k.' can not be blank.<br>';
            $error .= '<div>'.$k.' can not be blank.</div>'; //here is another option...  

       }
    endforeach;
    //if you get here now do your averages or whatever you were wanting.

    endif;

//anywhere else in your entire php page write this
if($error){echo $error; } //this is a basic check, if error is empty it will be false, if error is not empty above it will print out the fields that

   ?>
  • 0
    Хорошо; Благодарю. Но: (ii) есть ли способ вывести пустые элементы $ _POST клиенту, чтобы они могли их исправить? Пробовал <? Php echo "Ты ушел". $ V. "Filed Empty"?> Но это не работает. (ii) Вторая часть исходного вопроса, строка 16; вот что породило этот вопрос. - Стивен Карр
  • 0
    Конечно. Я изменил код выше для вас. Я уже проверял, является ли поле пустым, а затем убивал процессы. Теперь я сделал так, чтобы оно отображало имя поля и говорило, что оно не может быть пустым. Вы также можете поместить эти сообщения в переменную типа $ error, а затем отобразить их ниже на своей странице, чтобы они выглядели более профессионально. Я добавил эту опцию и для вас.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню