为什么按钮不仅不能用于第一行,而且不能发布任何值?

时间:2018-12-04 10:20:17

标签: php mysqli html-table

我目前正在php mysql中开发一个项目,以针对每一行显示db的内容,并带有edit选项。在下面的代码中,我仅返回第一行就不能返回任何值,其余的行按钮都可以正常工作。我无法弄清楚是什么问题。如果您能帮助我,那就太好了。

表格显示页面的代码段

$sql1 = "SELECT * FROM `computation` WHERE `compute_month` = '$month'  and `compensation_type` = '$allowance' and order by `emp_id` ASC";
}
$result1 = mysqli_query($con, $sql1);
echo "
<form action='confirmallowance.php' method='POST'>
    <table class=data-table border='1' overflow-x=auto>
        <caption class=title><b>Allowance Sheet<b></caption>
        <thead>
        <tr>
            <th>Date</th>
            <th>Allowance Month</th>
            <th>Attendance Date</th>
            <th>Day</th>
            <th>Employee Code</th>
            <th>Employee Name</th>
            <th>InTime</th>
            <th>OutTime</th>
            <th>Work Duration</th>
            <th>Team</th>
            <th>Approver</th>
            <th>Allowance type</th>
            <th>Eligibility</th>
            <th>Approved_amount</th>
            <th>Status</th>
        </tr>
        </thead>
        <tbody>";
if (mysqli_num_rows($result1) > 0) {
    // output data of each row
    while ($row = mysqli_fetch_assoc($result1)) {
        echo '
        <tr id="' . $row['id'] . '">
            <td>' . $row['computation_date'] . '</td>
            <td>' . $row['compute_month'] . '</td>
            <td>' . $row['attendance_date'] . '</td>
            <td>' . $row['attend_day'] . '</td>
            <td>' . $row['emp_id'] . '</td>
            <td>' . $row['emp_name'] . '</td>
            <td>' . $row['time_in'] . '</td>
            <td>' . $row['time_out'] . '</td>
            <td>' . $row['duration'] . '</td>
            <td>' . $row['team'] . '</td>
            <td>' . $row['manager'] . '</td>
            <td>' . $row['compensation_type'] . '</td>
            <td>' . $row['eligibility'] . '</td>
            <td>' . $row['amount'] . '</td>
            <td>' . $row['status'] . '</td>
            <td><input type="checkbox" name="checkbox[]" value="' . $row['id'] . '" checked="checked"></td>
            <td>
                <form action="editallowance.php" method="POST"><input type="hidden" name="tempid"
                                                                      value="' . $row['id'] . '"/><input type="submit"
                                                                                                     name="submit"
                                                                                                     value="Edit"/>
                </form>
            </td>
        </tr>
        ';
    }
}

//单击编辑按钮时表值接受页面的代码段

if (isset($_POST["submit"]) && $_POST["submit"]) {
    $editrow = $_POST['tempid'];
    $sql = "SELECT * FROM `computation` WHERE `id` ='$editrow'";
    $result = mysqli_query($con, $sql);
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $att_date = $row['attendance_date'];
            $att_day = $row['attend_day'];
            $emp_id = $row['emp_id'];
            $emp_name = $row['emp_name'];
            $comptype = $row['compensation_type'];
            $eligibility = $row['eligibility'];
            $comment = $row['comment'];
            $status = $row['status'];
            echo "<P>Emp ID : " . $emp_id . "</p> <p>Emp Name :" . $emp_name . "</p><p>Attendance Date : " . $att_date . "</p><p>Day : " . $att_day . "</p>";
        }
    }
} else {
    echo "No data";

如果您需要任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

您的html格式不正确。您要在第一个文件中的表开始标记(也没有结束标记)之前添加未使用的表单开始标记:

<form action='confirmallowance.php' method='POST'>
<table class=data-table border='1' overflow-x=auto>

请删除此表单打开标记html,它将正常工作。它会干扰以后出现的html表单。