使用Jquery将表单数据存储到隐藏字段中?

时间:2012-04-16 18:38:55

标签: php jquery json hidden-field

我有一个包含另一个表单的弹出页面的表单。在该弹出窗体中,我想要填写所有字段,并通过隐藏字段将其存储在主父窗体的单个字段中。因此,当父表单被提交时,我可以通过php通过隐藏字段获取所有字段。我怎么能用jquery做到这一点?我可以从弹出窗体中获取所有字段并将其存储为隐藏字段中的json字符串吗?然后在PHP中能够将该jquery字符串转换为对象,以便我可以轻松访问所有表单值?如果是这样,那么我如何从弹出窗体中取出所有字段并将其转换为json字符串?或者有更好/更简单的方法吗?

2 个答案:

答案 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")