PHP post总是忽略最后一个表值

时间:2017-07-19 14:08:03

标签: php html sql html-table

我有一个删除按钮name =“action”正确转到value="Delete"的开关/案例,它为顶级表$_POST['fundid']检索正确的表值value[record #1]但忽略它对于最后一个表value[record #2]。表格代码:

while ($row = mssql_fetch_array($fund_info_result)) {
    echo "<tr>";
    echo "<form action='' method='post'>";
    echo "<td>" . $row['coafund'] . "</td>";

    echo "<td>" . $row['fundid'] . "</td>";
    echo "<input type='hidden' id='fundid' name='fundid' value=" . $row['fundid'] . " />";

    echo "<td>" . $row['shortdesc'] . "</td>";
    echo "<td>" . $row['longdesc'] . "</td>";

    echo "<td><input type='submit' id='delete' name='action' value='Delete' /></td></td>";
    echo "</form>";
    echo "</tr>";
}

PHP代码获取第一条记录的值,但忽略第二条[最后]记录:

if (isset($_POST)) {
case 'Delete':
    $fundid_record = $_POST['fundid'];
    ?>
        <script type="text/javascript">
            window.alert("<?php echo $fundid_record;?>");
        </script>
    <?php
break;
}

生成的HTML示例如下所示:

<tbody>
  <form id='table_data1' action='' method='post'>
  <tr>
    <td>139</td>
    <td>14966</td>
    <input type='hidden' id='14966' name='fundid' value=14966 />
    <td>Admin</td>
    <td>Administration</td>
    <td><input type='submit' id='delete' name='action' value='Delete' /></td>
    </td>
  </tr>
  </form>
  <form id='table_data1' action='' method='post'>
    <tr>
      <td>140</td>
      <td>14967</td>
      <input type='hidden' id='14967' name='fundid' value=14967 />
      <td>Services</td>
      <td>Services</td>
      <td><input type='submit' id='delete' name='action' value='Delete' /></td>
      </td>
    </tr>
  </form>
</tbody>

这里的另一张用户票帮助我至少正确地获取了值,使用每个记录的表单标记和隐藏值,但非常混淆为什么它忽略了表的最后一条记录。请帮忙。

2 个答案:

答案 0 :(得分:2)

您正在创建无效的HTML标记。唯一可以是<tbody>的孩子的是<tr><tr>的孩子唯一可以是<th>或{{1} }}。将表单和输入代码放在表格中但在表格单元格之外是无效的。许多浏览器会在表外移动这样的标记,这会导致表单被错误地创建,并且几乎可以肯定是您所看到的奇怪行为的原因。

此外,您关闭其中一个<td>两次(<td>),但这两者都没有帮助。

这应该解决它:

</td></td>

答案 1 :(得分:1)

var_dump()的{​​{1}}可以提供有用的信息。

从我看到的,您在$_POST属性中使用静态值来插入循环中的元素。无论接下来发生什么都是一个坏主意,因为id应该在一个页面中存在一次而且只存在一次。每次循环迭代时,您至少应该增加一个值,并将该值附加到您的id,以便它是unic,或者根本不使用id。

我没有足够的信息来确定它,但实际上我不久前遇到了同样的问题,原因恰恰是id在不同的id被多次使用{ {1}}元素。

希望它有所帮助,如果没有,可以随意添加一些日志。