每个表行的一个表单,但也是整个表的表单

时间:2014-03-04 03:44:27

标签: html forms nested

我似乎无法弄清楚如何为每个单独的行运行表单,但同时有一个表单来处理表中的每个项目。例:

deleteSelected表单将控制批量操作, changeStatus表单将控制单个项目

<form id="deleteSelected">
    <table>
        <tr>
            <td><input type="checkbox" name="deleteSelected[]"/></td>
            <td>Id</td>
            <td>Name</td>
            <td>Phone</td>
            <td>
                <form id="changeStatus">
                    <select name="item_id">
                        <option value="option1">option1</option>
                        <option value="option2">option2</option>
                        <option value="option3">option3</option>
                    </select>
                </form>
            </td>
        </tr>
    <table>
</form>

我知道这是错的,因为你不能出于显而易见的原因嵌套表单,但这正是我想要完成的。

我遇到的一个可能的解决方案是创建一个由javascript填充的不可见表单,其中包含所有已检查的项目ID,然后将PHP爆炸到POST。但它似乎更像是一个黑客而非修复。还有其他任何方式??

谢谢。

1 个答案:

答案 0 :(得分:0)

内部表单下的

表单无效,因此您可以使用JavaScript函数加载页面

<script type="text/javascript">
function changestatus(value)
{
    window.location.href="actionurl.php?sendvalue="+value;
}
</script>

将此函数调用为选择框的更改事件,如此

<form id="deleteSelected">
    <table>
        <tr>
            <td><input type="checkbox" name="deleteSelected[]"/></td>
            <td>Id</td>
            <td>Name</td>
            <td>Phone</td>
            <td>
               <!-- <form id="changeStatus">-->
                    <select name="item_id" onchange="changestatus(this.value);">
                        <option value="option1">option1</option>
                        <option value="option2">option2</option>
                        <option value="option3">option3</option>
                    </select>
              <!--  </form>-->
            </td>
        </tr>
    <table>
</form>

<script type="text/javascript">
function changestatus(value)
{
    window.location.href="actionurl.php?sendvalue="+value;
}
</script>