【问题标题】:PHP post form not sending name="foo[]" data to $POST variablePHP 发布表单未将 name="foo[]" 数据发送到 $POST 变量
【发布时间】:2017-07-27 19:39:35
【问题描述】:

我有这段代码可以在 php 表单中填充表格的行

$html = '<tr>'; 
            $html .= '<td class="tg-yw4l"><input type="text" name="exam_date_input[]" value="' . $exam_date . '"></td>';
            $html .= '<td class="tg-yw4l"><input type="text" name="exam_code_input[]" value="' . $exam_code . '"></td>';
            $html .= '<td class="tg-yw4l"><input type="text" name="exam_title[]" value="' . $title . '"></td>';
            $html .= '<td class="tg-yw4l"><input type="text" name="exam_time_input[]" value="' . $exam_time . '"></td>';
            $html .= "<td class='tg-yw4l'><a href='javascript:void(0)' class='row_remove'> - </a></td>";
$html .= '<tr>';
die($html);

这是我检查元素时显示的 HTML

&lt;input name="exam_date_input[]" value="01/03/2017" type="text"&gt;

理论上,提交表单应该将此数组添加到 $POST 数组中。

然而这并没有发生。

相反,我的表单操作页面 $date = $_POST['exam_date_input']; 上的这段代码给出了以下通知:

Notice: Undefined index: exam_date_input

并且在 $POST 数组中没有使用 var_dump($_POST); 的 exam_date_input 数组

【问题讨论】:

  • 这个表单是如何提交的? die() 命令意味着这是您的 HTML 的全部,这意味着没有实际的表单。你还提交什么?
  • print_r($_POST); 向您展示了什么?鉴于这些输入,不会有$_POST['exam_date_input']。

标签: php arrays forms post


【解决方案1】:

input 不在form 内,因此当您发布form 时,您的input 不会添加到参数中。 die 似乎不正确,因为您需要关闭打开的标签,包括 body 和 html。解决方案是确保不要在input 之前关闭form,而是在整个table 之后关闭,并使用echo 而不是die。

【讨论】:

  • 我在表单中添加了一些div 标记用于样式设置。这导致table 中的input 字段出现在表单之外。更改 HTML 标记已解决此问题。
  • @IanButler 如果我的回答解决了您的问题,那么不要忘记将其标记为正确答案。如果没有,请使用您当前拥有的 HTML 编辑您的问题,并让我了解它。
  • 我把它说得很正确,因为它让我以正确的方式查看我的代码。不过,我可能没有很好地表达这个问题。当有这么多不同的代码发布相关部分时,这很棘手......
猜你喜欢
  • 2016-05-06
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
相关资源
最近更新 更多