我有一个包含另一个表单的弹出页面的表单。在该弹出窗体中,我想要填写所有字段,并通过隐藏字段将其存储在主父窗体的单个字段中。因此,当父表单被提交时,我可以通过php通过隐藏字段获取所有字段。我怎么能用jquery做到这一点?我可以从弹出窗体中获取所有字段并将其存储为隐藏字段中的json字符串吗?然后在PHP中能够将该jquery字符串转换为对象,以便我可以轻松访问所有表单值?如果是这样,那么我如何从弹出窗体中取出所有字段并将其转换为json字符串?或者有更好/更简单的方法吗?
答案 0 :(得分:5)
将表单捕获到用于发布的输入中:
您希望.serialize()
表单。
$('input').val( $('form').serialize() );
然后,在PHP中,您只需执行parse_str()
将其拆分为数组。
另外,请记住,可能有更好的解决方案,而不是像这样传递字段数据,但是如果你对这个实现有所了解,那么这可能是要走的路。
要将表单作为模式打开,请在PHP中收集数据:
// You can set this to not open by default and bind the opening to a button, or a link, etc...
$('form').dialog({
modal: true
});
在PHP中,您的表单将照常包含在$_POST
中。
print_r( $_POST );
答案 1 :(得分:0)
一个想法是使用jQuery创建这样的字段:
$(".innerForm input").each(function() {
$(".parentForm").append("<input type='hidden' name='"+$(this).attr("name")+"' value='"+$(this).val()+"'");
});
如果您以这种方式将值添加到页面,那么您就可以访问它们,就像它们是$ _POST
的正常部分一样$_POST("hidden_field_name")