我有一个父页面,其中有一个下拉列表。使用onchange事件,使用$.post()
将数据发布到第二个页面。这个页面使用发布的变量来输出mysql数据,每行都有一个复选框。然后使用jquery $('#DIV name').html(output).show();
将该页面输出插入父页面
然后,用户可以看到带有相应复选框的mysql表行。然后,他们选中想要的复选框,然后说删除。删除是一个表单提交按钮。
我的问题是,当他们单击"删除"时,我如何从第二个页面获取表单数据,并将其与父页面的表单数据一起发布,以便使用$_POST[]
获取复选框信息并删除选定的表行?
父页面代码的示例是:
javascript/jquery
<script type="text/javascript">
function get(row){ //row being processed, defined in onchange="get(x)"
('getpeopleinjobs.php',{ //data posted to external page
postvarposition: form["position"+row].value, //variable equal to input box, sent to external page
postvarjob: form["job"+row].value, //variable equal to input box, sent to external page
postvarperson: form["person"+row].value, //variable equal to drop down list, sent to external page
postrow: row}, //variable equal row being processed, sent to external page
function(output){
$('#training'+row).html(output).show(); //display external results in row div
//popupWindow = window.open('t4.php?variable1Name=Vicki&variable2Name=Maulline','popUpWindow','height=400,width=1000,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes')
});
}
</script>
表单数据是
<tr>
<td>
<?PHP echo $i; ?>
</td>
<td>
<input type=text NAME="position<?PHP echo $i; ?>" id="position<?PHP echo $i; ?>" style="border: 1px solid #2608c3;color:red; width=200px" value="<? echo mysql_result($resultpositionjob,$r,0);?>">
</td>
<td>
<input type=text NAME="job<?PHP echo $i; ?>" id="job<?PHP echo $i; ?>" style="border: 1px solid #2608c3;color:red; width=200px" value="<? echo mysql_result($resultpositionjob,$r,1);?>">
</td>
<td>
<SELECT NAME="person<?PHP echo $i; ?>" id="person<?PHP echo $i; ?>" style="border: 1px solid #2608c3;color:red; width=200px" onchange="get(<? echo $i; ?>);">
<OPTION VALUE=0 >
<?=$optionpeople?>
</SELECT>
</td>
<td onclick="train(<? echo $i; ?>);" style="color:grey; cursor: pointer;">
<div id="training<?PHP echo $i; ?>"><font color=grey size=2></div>
</td>
<td>
</td>
</tr>
<?PHP
$i++;
$r++;
}
?>
jquery调用的第二个页面或页面,输出为:
echo
"
<table border=0 width=400>
<tr>
<td width=20>
</td>
<td width=150>
<b>Position<b>
</td>
<td>
<b>Job<b>
</td>
</tr>
";
while($line = mysql_fetch_array($result))
{
echo "
<tr>
<td>
";
?>
<input type=checkbox name="delete[]" id="delete[]" value="<?php echo $rows['id']; ?>">
<?PHP
echo "
</td>
<td>
";
echo $line['position'];
echo "
</td>
<td>
";
echo $line['job'];
echo "
</td>
</tr>
";
}
?>
<tr>
<td>
<input type=submit name="update" id="update" value="Update">
</td>
</tr>
</table>
<?PHP
}
重复一遍,我希望第二页中的表复选框元素与父页的表单数据一起发布。
这可能吗,因为我的测试没有给我任何运气。
我是做错了什么,还是需要修改jquery代码?
一如既往地感谢您的帮助。
没有第二页。实际上,您正在从第二个页面加载HTML内容,但它正在插入父页面。从浏览器的角度来看,所有内容都在同一个页面中。只要字段在元素内部的DOM中,就应该包含这些字段。使用浏览器的开发工具或Firefox的Firebug来确保内容被放置在DOM的表单元素中。开发人员工具还应该能够在提交表单时准确地向您显示哪些变量被提交到服务器。
"form"的"action"参数将指示内容提交的位置(而且似乎您在HTML中遗漏了这一部分,因此无法判断您是否遗漏或只是没有将其包含在粘贴中。