无法发布带有桌子的表单

时间:2016-03-31 10:50:45

标签: php

这是一个页面,我有一个表格,其中包含一些必须使用表格发送到另一页面的输入。

<form action="another-page.php" method="POST" id="action-form"></form>
      <table id="filter-table" class="table table-striped">
        <thead>
          <tr>
            <th> CODE </th>
            <th> NAME </th>
            <th> CONF </th>
            <th> SELECT </th>
          </tr>
         </thead>
         <tbody>
          <tr>
               <td>A0294850</td>
               <td>Test</td>
               <td>A792</td>
               <td><input type="checkbox" name="[A0294850]checkbox" value="A0294850" form="action-form"></td>
          </tr>
         </tbody>
       </table>
<div class="row-fluid">
   <div class="span12 module_cont module_promo_text">
      <div class="shortcode_promoblock ">
         <div class="row-fluid">
            <div class="span9 promo_text_block">
               <h4>Submit the form</h4>
            </div>
            <div class="span3 promo_button_block">
               <input type="submit" class="promo_button" value="OK" form="action-form">
            </div>
            </div>
           </div>
           </div><!--.module_cont -->
           <div class="clear"><!-- ClearFIX --></div>
           </div><!-- .row-fluid -->

在另一页(&#39; another-page.php&#39;)中,我尝试打印$ _POST值,但我收到一个空数组作为响应。

这是代码

<?php
    print_r($_REQUEST); die();
?>

我应该如何提交表格?

我还尝试将所有表格和HTML代码包含在表单标记中,但它也不起作用。

1 个答案:

答案 0 :(得分:6)

您正在代码的第一行开始和结束表单:

<form action="another-page.php" method="POST" id="action-form"></form>

结束标记表示该表单的结尾,因此表中的任何内容实际上都不是表单的一部分。你需要用表格标签围绕表格,如下所示:

<form>
   <table></table>
</form>

查看表单用法的some examples

<强>更新: 您发现在字段上使用form属性,因此关闭表单不是问题。问题实际上与您的复选框的名称一致。引自the docs

  

注意:只有具有name属性的表单元素才会在提交表单时传递其值。

这意味着当您的输入名称无效时,它将被视为空白,因此不会通过。如果你把它改成这样的东西:

<input type="checkbox" name="checkbox[A0294850]" value="A0294850" form="action-form">

您将从打印脚本中获得这样的数组:

Array ( [checkbox] => Array ( [A0294850] => A0294850 ) )

使用[启动名称时遇到问题的原因是某些服务器端语言会尝试将其解释为创建数组的指令。遗憾的是,PHP不会创建数组,因为您没有对其进行命名,因此它不能出现在关联$_POST数组中,因为进行括号的文本需要用作key