首页 文章

PHP操作无法正确确定html表中的输入字段是否为空

提问于
浏览
0

我正在使用PHP创建一个HTML表,其中表中的每一行都包含一个输入类型为“text”的单元格 . 在行的末尾有一个提交按钮,它将从表格单元格的输入字段中读取数据 .

我有使用$ _GET方法编写的代码,在单击提交按钮后读取我的URL的操作,但此操作的PHP代码未正确确定表中输入字段的数据是否为空 .

PHP代码:

$time_cell_row = 1;

      // <input name="userid" type="hidden" id="userid" value="<? echo $rows['userid'];

      while($tasks_row = $tasks_result->fetch_array()) {
        $time_cell_column = 1;
       echo "<form name='timesubmit" . $time_cell_row . "' action='enter_time.php?action=timesubmit" .$time_cell_row . "' method='post'>";  
       echo "<tr>
       <td>" . $tasks_row['taskname'] . "</td>
       <td><input name=taskdaycell" . $time_cell_row . $time_cell_column . " type=text></input></td>";

       $time_cell_column++;
       echo "<td><input name=taskdaycell" . $time_cell_row . $time_cell_column . " type=text></input></td>";
       $time_cell_column++;
       echo "<td><input name=taskdaycell" . $time_cell_row . $time_cell_column . " type=text></input></td>";
       $time_cell_column++;
       echo "<td><input name=taskdaycell" . $time_cell_row . $time_cell_column . " type=text></input></td>";
       $time_cell_column++;
       echo " <td><input name=taskdaycell" . $time_cell_row . $time_cell_column . " type=text></input></td>";
       $time_cell_column++;
       echo "<td><input name=taskdaycell" . $time_cell_row . $time_cell_column . " type=text></input></td>";
       $time_cell_column++;
       echo "<td><input name=taskdaycell" . $time_cell_row . $time_cell_column . " type=text></input></td>";

       echo "<td><input name=submit_time" . $time_cell_row . $time_cell_column . " type=submit></input></td>";
       echo  "</form></tr>";
       $time_cell_row++;   

      } 

if (isset($_GET['action'])) { 
    switch (strtolower($_GET['action'])) {
      case 'timesubmit1':

        if ( !isset($_POST['taskdaycell11']) || !isset($_POST['taskdaycell12']) || !isset($_POST['taskdaycell13'])
           ||  !isset($_POST['taskdaycell14']) || !isset($_POST['taskdaycell15']) || !isset($_POST['taskdaycell16'])
           || !isset($_POST['taskdaycell17'])) {

          echo "<b>Please do not leave any of the times blank</b><br>";

      }

         else {
          echo "Your times have been entered.";
         }    

        break;

   }
}

现在,如果我将表格单元格留空并单击“提交”按钮,则输出始终显示“已输入您的时间”,即使输入字段为空白 .

1 回答

  • 3

    无论是否包含任何内容,都将始终设置$ _POST . 因此,由于您的代码正在查看是否已设置而不是查看它是否包含任何内容,因此它无法按您的意愿运行 .

    尝试这样做 .

    if (
        empty($_POST['taskdaycell11']) ||
        empty($_POST['taskdaycell12']) ||
        empty($_POST['taskdaycell13']) || 
        empty($_POST['taskdaycell14']) ||
        empty($_POST['taskdaycell15']) ||
        empty($_POST['taskdaycell16']) ||
        empty($_POST['taskdaycell17'])
       )
    {
        echo "<b>Please do not leave any of the times blank</b><br>";
    }
    

    Edit: 感谢OP在我的代码中拾取错误:)

相关问题