在while循环php中向表单添加验证检查

时间:2015-04-03 13:29:23

标签: php forms validation while-loop

我有一个显示如下的表单: 活动名称:下拉菜单

我正在尝试添加一个检查,确保while循环生成的每个事件都有一个学生分配给它 - 从下拉菜单中选择。

我尝试为此添加支票,但它没有什么区别 - 它会加载表单操作页面' savecompetitors'。

到目前为止,我已经为php了解了这个:

<?php
session_start();
require_once 'db/connect.php';
require_once 'db/checkuserloggedin.php';
include 'db/header.php';

echo $_SESSION['Username'] . ' logged in successfully';
echo '<h3> Entry form </h3>';

//Query to display all events                           
if ($event_result = $con->query("SELECT Name FROM event")) {

    echo "<form method =\"POST\" action=\"savecompetitors.php\">";
    echo '<table>';
    while ($row = $event_result->fetch_assoc()) {
        echo '<tr>';
        echo '<td>';
        echo $row['Name'] . ' ';
        echo '</td>';

        if ($student_result = $con->query("SELECT Student.Form, Teacher.Form, Forename, Surname, Student_ID " .
            "FROM student, teacher " .
            "WHERE Student.Form = Teacher.Form AND Teacher.Username = '" . $_SESSION['Username'] . "'")
        ) {

            if ($student_result->num_rows) {
                echo '<td>';
                echo "<select name ='" . $row['Name'] . "'>";

                while ($row1 = $student_result->fetch_assoc()) {
                    echo '<option value="" style="display:none;"></option>';
                    echo "<option value ='" . $row1['Student_ID'] . "'>" . $row1['Forename'] . ' ' . $row1['Surname'] . "</option>";

                    if (isset($_POST['submit'])) {
                        if (empty($_POST['Student_ID'])) {
                            $error = 'A student must be selected for every event';
                        }
                    }

                }

                echo "</select>";
                echo '</td>';
                echo '</tr>';
            }
        }
    }
    echo '</table>';
    echo '<input type="submit" name="submit" value ="Submit" >';
    echo '<input type="reset" value ="Reset">';
    echo '<span class="error"><?php echo $error;?></span>';
    echo '<span class="error"><?php echo $success;?></span>';
    echo "</form>";
} else {
    echo 'No student records available';
}

savecompetitors php:

<?php
require_once 'db/connect.php';
$error = '';
$success = '';

$event_result = $con->query("SELECT Event_ID, Name from event");
while ($row = $event_result->fetch_assoc()) {

    $eventname = str_replace(' ', '_', $row['Name']);
    print_r($row);

    $con->query("INSERT INTO competitors (Event_ID, Student_ID) VALUES (" . $row['Event_ID'] . ", " . $_POST[$eventname] . ")   ");
    $success = 'Entry form has been successfully saved and students are entered as competitors for their submitted events';
}  

0 个答案:

没有答案