0

我想为文档创建一个表格,并允许用户选择是否需要与任务相关的文档。我需要它来检查文档的当前状态,以查看它是否已经被需要以及是否将复选框标记为已选中。数据库中当前有 4 个文档,并且只有 2 个关联到此特定任务的 2 个文档。

当文档与任务没有关联时,数据库中将没有条目说它没有关联,它只是简单地不会出现在该表中。

我目前拥有的代码将针对这两个具有关联的文档显示复选框,但是对于没有关联的文档根本不显示任何复选框。我希望它仍然显示 3 个复选框,以便用户可以更改其关联,但默认情况下它应该检查不需要。目前它根本没有显示任何复选框。下面是 PHP 片段。请告知您是否想要屏幕截图或数据库转储。

任何帮助将不胜感激。我希望这只是漫长的一天,我忘记了一些简单的事情。

    <table border=1>
      <tr>
        <td align=center><p>Here you can associate documents to Jobs and Tasks to.</p> </td>
      </tr>
    </table>';



$order2 = "SELECT * FROM documents";
$result2 = mysql_query($order2);
while ($row2 = mysql_fetch_array($result2)) {

$nice_name = $row2['nice_name'];
$doc_id = $row2['id'];

}

echo '
<h3>Documents</h3>

    <table border=1>
      <tr><th>Document Name</th><th>Document Type</th><th>Required</th><th>Optional</th><th>Not Required</th></tr>
    ';



$order2 = "SELECT * FROM documents ORDER BY type_id";
$result2 = mysql_query($order2);
while ($row2 = mysql_fetch_array($result2)) {

$nice_name = $row2['nice_name'];
$doc_id = $row2['id'];
$doc_type_id = $row2['type_id'];

echo '

      <tr>
        <td>'.$nice_name.'</td>';

$order3 = "SELECT * FROM document_types WHERE id = '$doc_type_id'";
$result3 = mysql_query($order3);
while ($row3 = mysql_fetch_array($result3)) {

$type_name = $row3['type_name'];

    echo '
        <td>'.$type_name.'</td>';

$order4 = "SELECT * FROM document_assoc WHERE doc_id = '$doc_id'";
$result4 = mysql_query($order4);
while ($row4 = mysql_fetch_array($result4)) {

$requirement = $row4['requirement'];

    echo '

        <td><input type="checkbox" name="req" value="2" '; if ($requirement == 2) { echo ' checked '; } echo '></td>
        <td><input type="checkbox" name="opt" value="1" '; if ($requirement == 1) { echo ' checked '; } echo '></td>
        <td><input type="checkbox" name="not" value="0" '; if ($requirement < 1) { echo ' checked '; } echo '></td>';
    }

    }

    echo '
      </tr>';
    }
    echo '
    </table>';

到目前为止,我刚刚尝试使用最后一个复选框调整要求 =。但是,无论我使用 NULL 等,它都保持不变——我猜我错过了一些东西。

亲切的问候,

n00bstacker

4

1 回答 1

1

您可以使用以下if语句来识别情况并做出适当的回应:

            $order4 = "SELECT * FROM document_assoc WHERE doc_id = '$doc_id'";
                $result4 = mysql_query($order4);
                $_results = mysql_fetch_array($result4);
                if (!$_results) {
                       <<<< OUTPUT THE CHECKBOXES/INPUTS YOU NEED >>>>
                } else {
                   foreach ($_results as $result) {

                $requirement = $result['requirement'];

echo '

    <td><input type="checkbox" name="req" value="2" '; if ($requirement == 2) { echo ' checked '; } echo '></td>
    <td><input type="checkbox" name="opt" value="1" '; if ($requirement == 1) { echo ' checked '; } echo '></td>
    <td><input type="checkbox" name="not" value="0" '; if ($requirement < 1) { echo ' checked '; } echo '></td>';
}

}

希望这可以帮助!

于 2013-02-02T00:27:22.650 回答