从子页面发布和重建父页面检索值

时间:2013-02-03 21:16:15

标签: php javascript

我正在调用子页面并发布表单。尝试根据在子页面中输入的值刷新和重建父页面。我无法在子页面中看到子项已发布值。

期望值$ _POST ['test_2']在从父页面提交子项时填充。 我没有在父页面中看到子页面发布的值。请参阅下面的代码示例。 谢谢你的帮助.. 如果有任何其他更好的方法来访问子页面提交的值并使用这些子页面值重建父页面,请通知我。

父页面是:Example1Parent.php

<html>
<head>
<body>
<h1> Welcome Parent </h1>
<div id="dateDiv"></div>
<form method=post action='' name=f1>
<table border=0 cellpadding=0 cellspacing=0 width=550>
<tr>
<td ><font size=2 face='Verdana'>Refresh upon Search</font>
<input type=hidden name='p_name2' id=n2 size='8'> 
<input type=button 
onClick=window.open("Example1Child.php","Ratting","width=550,height=170,left=150,top=200,toolbar=0,status=0,"); value="Advanced Search">
<?php
echo '<br> Welcome ';
if (!isset($_POST['test_2'])) echo "<br> t_test2 : it does not exists! ";
?>
</td></tr> 
</table>
</form>
</body>
</html>

子页面是:Example1Child.php

 <html>
 <head>
 <title>ChildForm</title>

 <SCRIPT language=JavaScript>
 <!-- 
 function win(){
 window.opener.location.href="Example1Parent.php";
 self.close();
 //-->
 }
</SCRIPT>
</head>
<body>
<h1> Welcome to Child </h1>
<form name="child"  id="child"  METHOD="POST" action=''>
<input type="text" id="test_2" name="test_2" value="ENTER DATA TO PARENT PAGE">
<INPUT TYPE="SUBMIT" onClick="win();" value="SEND VALUE TO PARENT">
</form>

</body> 
</html>

1 个答案:

答案 0 :(得分:0)

正如tmuguet所提到的,你可能想要创建一个不同的方法,因为这是一种相当古老的方法。现在有一天你可以使用popups / modal box等获取值,然后使用js / ajax或whatnot更新页面。

我猜你试图通过js传递值,这是不行的,因为你打开窗口打开一个干净的链接(没有值传递甚至很难你在表单方法中'POST')你可以使用类似下面的内容,但它只会给你GET值

<SCRIPT language=JavaScript>
<!-- 
    function win(){
        val = document.getElementById('test_2').value;//you will most likely need to encode this value if it has special characters
        window.opener.location.href="Example1Parent.php?test_2=" + val;
        self.close();
//-->
}
</SCRIPT>

您要找的是Window.open and pass parameters by post method problem

<form id="child" method="post" action="Example1Parent.php" target="Parent">
    <!-- <form name="child"  id="child"  METHOD="POST" action=''> -->
    <input type="text" id="test_2" name="test_2" value="ENTER DATA TO PARENT PAGE">
    <INPUT TYPE="SUBMIT" onClick="win();" value="SEND VALUE TO PARENT">
</form>

<script type="text/javascript">
    function win(){
        var f = document.getElementById('child');
        f.test_2.value =  document.getElementById('test_2').value;
        window.open('Example1Parent.php', 'Parent');
        f.submit();
        self.close();
    }
</script>

我没有测试过这个脚本

您可能希望在Example1Parent.php文件中执行var_dump($_POST),以查看f.test_2.value是否转换为$_POST['test_2']