如何提交许多自动生成的表单之一的值

时间:2013-08-01 16:12:06

标签: php javascript jquery

我有一个包含许多自动生成表单的表(实际上可能有数百种表单)。该代码基于PHP,如下所示:

$cellPosition = 0;
$rowCounter = 1;
$infoCounter = 1;

for ($x=0;$x <= count($assetName);$x++)
{
    for ($i=0;$i < count($currentJobs);$i++)
    {
        $rowCounter= 1;
        if ($currentJobs[$i][0] == $table->getCellContents(0,$x))
        {

            for ($y =0; $y < $currentJobs[$i][10];$y++)
            {
                $rowCounter++;
            }
            $table->setCellAttributes ($rowCounter,$cellPosition,"id='jobCell' bgcolor = ". $currentJobs[$i][4].  " rowspan=" . $currentJobs[$i][9]);
            $table->setCellContents($rowCounter++,$cellPosition,
                                    "<form id='scheduleForm".$infoCounter++."' method='POST' action='../forms/updateJobForm.php'>".
                                    "<input type='hidden' name='jobInfo' value='" . $currentJobs[$i][1] . "'/>" . " " . "Job# (".$currentJobs[$i][2] . ")<br>" . $currentJobs[$i][3] .
                                    "</form>");
        }
            else
            {
                $rowCounter = 1;
            }
    }
    $cellPosition++;
}
echo $table->display();

我将jobCell(一个td元素)绑定到以下javascript / jquery代码:

<script>
    $(document).ready(function()
    {
        $("#jobCell").click(function()
        {
            $(this).children('form').submit();
            //$('#scheduleForm').submit();
        });
    });
</script>

我的每个工作单元都是可点击的,我之前已将它用于点击任何人提交表单的地方。问题是它只会发送表中最后一个jobcell的隐藏信息的信息。现在使用我当前的代码,它只允许用户单击第一个单元格并确实提交。当我有多种表单时,如何完成在单击的工作单元中提交隐藏数据?

2 个答案:

答案 0 :(得分:1)

页面上应该只有一个ID。你有很多表格都有相同的ID,它可能只提交最后一个。将id更改为class,同一页面上可以有任何具有相同类的元素。

猜测是这样的。但是,如果没有看到您的实际HTML输出,这可能是错误的。

<script>
    $(document).ready(function()
    {
        $("#jobCell").click(function()
        {
            $(this).children('form').submit();
            //$('.scheduleForm').submit();
        });
    });
</script>

答案 1 :(得分:0)

检查id='jobCell'是否仅设置一次。

我希望代码看起来更像是表单ID代码:

id='scheduleForm".$infoCounter++."'