0

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

从父页面提交子项时填充预期值 $_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>
4

1 回答 1

0

正如 tmuguet 提到的,您可能想要创建一种不同的方法,因为这是一种相当古老的方法。现在有一天,您可以使用弹出窗口/模态框等来获取值,然后使用 js/ajax 或诸如此类的东西更新页面。

我猜你正试图通过 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 并通过 post 方法问题传递参数

<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>

我没有测试过这个脚本

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

于 2013-02-03T21:45:40.507 回答