Member 8172875 Ответов: 1

проверка формы php на таблице


у меня есть квалификация образования имени таблицы в моей форме. я хочу получить подтверждение на квалификационном столе. у них есть всего 5 полей, из которых пользователь решает заполнить. но мне нужна валидация, если пользователь вводит сданный экзамен, то ему придется добавить все детали сданного экзамена.

например,для
рядовой экзамен сдан годовые отметки в процентах
1 10 200 170 60
2 12
3
4
5

в этой таблице есть 5 строк, но пользователь должен решить, сколько столбцов будет заполнено... но если пользователь вводит в пустую строку, например "12", то ему нужно ввести годовые отметки и процент.

foreach ($post['exam_passed'] as $id => $slno) {
    if (empty($exam_passed_))  {
      $error[] = 'exam_passed_' . $id;
      $error_message[] = 'exam_passed_ can not be blank.';
    }
  }


foreach ($post['univ'] as $id => $slno) {
    if (empty($univ_)) {
      $error[] = 'univ_' . $id;
      $error_message[] = 'univ_ can not be blank.';
    }
  }

foreach ($post['years_passing'] as $id => $slno) {
    if (empty($years_passing_)) {
      $error[] = 'years_passing_' . $id;
      $error_message[] = 'years_passing_ can not be blank.';
    }
  }

foreach ($post['attempt'] as $id => $slno) {
    if (empty($attempt_)) {
      $error[] = 'attempt_' . $id;
      $error_message[] = 'attempt_ can not be blank.';
    }
  }

foreach ($post['max_marks'] as $id => $slno) {
    if (empty($max_marks_)) {
      $error[] = 'max_marks_' . $id;
      $error_message[] = 'max_marks_ can not be blank.';
    }
  }


<pre lang="xml"><li> Academic Qualification:(Examinations passed from Metic/Higher Secondary onwards to Doctorate/Research degrees).
                        <table cellpadding="5px" border="1">
                          <thead>
                            <tr>
                              <td>
                              <center>Examination</center>
                              </td>
                              <td>
                              <center>Name of the Univ./Board</center>
                              </td>
                <td>
                              <center>Year of Passing</center>
                              </td>
                <td>
                              <center>Attempts in which passed</center>
                              </td>
                              <td>
                              <center>Max. Marks</center>
                              </td>

                              <td>
                              <center>Marks Obtained</center>
                              </td>
                              <td>
                              <center>Percentage</center>
                              </td>
                <td>
                              <center>Hons Distinction(Position)</center>
                              </td>
                            </tr>
                          </thead>
                          <tbody>
                           <?php for ($i = 0; $i<13; $i++): ?>
                            <tr>

                              <td>
<div <?php (in_array('exam_passed_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="exam_passed[]" value="<?php !empty($post['exam_passed'][$i]) ? print $post['exam_passed'][$i] : '';?>"/></td>
                              <td>
<div <?php (in_array('univ_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="univ[]" value="<?php !empty($post['univ'][$i]) ? print $post['univ'][$i] : '';?>"/></td>

                              <td>
<div <?php (in_array('years_of_passing_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="years_passing[]" value="<?php !empty($post['years_passing'][$i]) ? print $post['years_passing'][$i] : '';?>"/></td>
                <td>
<div <?php (in_array('attempt_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="attempt[]" value="<?php !empty($post['attempt'][$i]) ? print $post['attempt'][$i] : '';?>"/></td>
                <td>
<div <?php (in_array('max_marks_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="max_marks[]" value="<?php !empty($post['max_marks'][$i]) ? print $post['max_marks'][$i] : '';?>"/></td>
                <td>
<div <?php (in_array('marks_obt_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="marks_obt[]" value="<?php !empty($post['marks_obt'][$i]) ? print $post['marks_obt'][$i] : '';?>"/></td>
                              <td>
<div <?php (in_array('percentage_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="percentage[]" value="<?php !empty($post['percentage'][$i]) ? print $post['percentage'][$i] : '';?>"/></td>
                              <td>
<div <?php (in_array('position_' . $i, $error) ? print "class='error'" : '') ?>><input type="text" name="position[]" value="<?php !empty($post['position'][$i]) ? print $post['position'][$i] : '';?>"/></td>
                            </tr>
                            <?php endfor; ?>

                          </tbody>
                        </table>
                        </li>

1 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Ваш самый первый код показывает, что вы должны получить представление о том, что именно вы делаете - если это цель формы, то каков источник $post?

Если это должна быть форма, то это будет $_POST, а не массив:

foreach ($post['exam_passed'] as $id => $slno) {
    if (empty($exam_passed_))  {
      $error[] = 'exam_passed_' . $id;
      $error_message[] = 'exam_passed_ can not be blank.';
    }
  }


Таким образом, у вас есть цикл foreach для $post (из любого источника, из которого вы его получаете), который будет операцией массива со значением, которое не является массивом, а является его членом.

Обычно лучше проводить проверку на стороне клиента (если только данные не нужно проверять на сервере), что делается с помощью javaScript.

Это просто кажется большим беспорядком, чтобы исправить, пока вы не получите все это в каком-то логическом порядке.


Richard Deeming

Проверьте дату вопроса - я надеюсь, что ОП все еще не ждет ответа. :)

W∴ Balboos, GHB

Кто - то должен был сделать что-то, чтобы продвинуть его наверх списка-хотя в этом случае я думаю, что согласен с вами. Ну, по крайней мере, теперь это исключено из списка.