2011-05-25 22 views
0

我正在使用php和jquery。我在填写表单后,在php中有一个表单,我希望能够点击提交并将数据发送到弹出的模式窗口,其中显示表单数据。会有一个额外的文本框来填写,然后点击另一个提交后,这个文本框+表单数据将被提交到父窗口的处理页面。将数据发送到模态窗口,然后在原始窗口中发布表单

所以基本上,我不知道如何 -

1)从形式传递表单数据模式窗口 - 我用JSON字符串化如果又如何?

2)如何从模态窗口提交的文本框前面的表格,数据+数据恢复到原来的形式

感谢

回答

0

2)如何从模态窗口 以前提交在 文本回原来的形式

window.open()打开新窗口后表单数据+数据,您可以通过访问“父窗口”。例如,如果您在父窗口中有<form id='foo'/>,则可以从“模式”窗口以$(window.opener).find('#foo')的身份访问它。


1)从形式传递表单数据到模态窗口 - 做,如果这样我怎么使用JSON字符串化和 ?

什么POST发送到同一窗口,验证数据,重新加载页面,如果一切顺利的第一个表单,则显示重新加载页面后模式窗口?数据可以存储在$_SESSION中,这样你就不必担心在窗口之间传递数据。或者,如果你真的想将数据传递到子窗口的形式,你可以做这样的事情(未测试):

var modalWindow = window.open(
    URL, 
    '_blank', 
    'width=400, height=300, left=100, top=300' 
); 
modalWindow.load(function(){ 
    var form = $(this).find('#idOfFormInModalWindow'); 
    form.find('[name=someField1]').val('someValue1'); 
    form.find('[name=someField2]').val('someValue2'); 
    form.find('[name=someField3]').val('someValue3'); 
}); 

someValue1someValue2someValue3会从$_POST值,通过json_encode()通过。

+0

感谢您的答案 - 我想将数据发送到窗口的原因是显示,有点像预览。用户将输入一些文本,然后点击提交,然后只有现在我会发布整个表单并执行数据库插入 – Ronbear 2011-05-25 13:12:37

+0

所以...在主窗口中,使用'window.open()'创建一个模式窗口。将返回值存储到变量中。使用类似于我已经发布的方式创建它的'load'事件处理程序,其中“someValue1”等是主窗口中窗体的值(例如'$('#someField1')。val()')。这是在主窗口的JavaScript中完成的。在模态窗口中提交表单后,检查一切是否正常,并显示一些错误消息(如果需要),或者使用模式窗口中的'window.close()'关闭它。从模态窗口,您可以通过'window.opener'访问主窗口进行操作。 – binaryLV 2011-05-25 13:25:27