我有一个包含许多自动生成表单的表(实际上可能有数百种表单)。该代码基于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的隐藏信息的信息。现在使用我当前的代码,它只允许用户单击第一个单元格并确实提交。当我有多种表单时,如何完成在单击的工作单元中提交隐藏数据?
答案 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++."'