0

我尝试使用弹出窗口和函数将单选按钮值存储在另一个页面中,但是当我提交单选值时,我在文本字段中收到未定义的错误。

 <script langauge="javascript">
 function post_value() {
     opener.document.f1.OPRID.value = document.frm.OPRID.value;
     self.close();
 }
 <input type="radio" name="OPRID" id="radio" value=<?=$objResult["OPRID"];?>>
 <input type="button" value='Submit' onclick="post_value();"> 

和其他页面文本字段

 <form method="post" action='' name='f1'>
 <table border=0  width=550> <tr>
 <td>Your Name</font><input id="OPRID" name="OPRID" type="text" value="<?php echo (isset($_POST 
  ['OPRID']) ? $_POST['OPRID'] : ""); ?>"/> 
   <a href="javascript:void(0);"
  NAME="My Window Name" title=" My title here "
    onClick=window.open       

 ("popwindow.php","Ratting","width=650,height=550,0,status=0,scrollbars=1");>
 Click here to open the child window</a> 

   </td></tr> </table></form>     

但在文本字段中我收到未定义的错误。

4

4 回答 4

0

您的代码有一些错误/问题:

  • 删除 JavaScript,这是不必要的。
  • 要将某些内容提交到另一个页面(使用$_POST/ $_GET),请使用<form>
  • 保持代码可读;尝试缩进并为元素使用新行

使您的代码如下所示:

主页

<form method="POST" action="otherpage.php">
    <input type="radio" name="OPRID" id="radio" value="<?php echo $objResult["OPRID"];?>" />
    <input type="button" value="Submit" />
</form>

然后,当按下提交按钮时,表单被提交到 otherpage.php,所以$_POST['OPRID']那里有一个值:

其他页面.php

<form method="post" action="" name="f1">
    <table border=0 width=550>
        <tr>
            <td>
                Your Name
                <input id="OPRID" name="OPRID" type="text" value="<?php echo (isset($_POST['OPRID']) ? $_POST['OPRID'] : ""); ?>" /> 
                <a href="javascript:void(0);" name="My Window Name" title=" My title here " onClick="window.open('popwindow.php','Ratting','width=650,height=550,0,status=0,scrollbars=1');" />
                    Click here to open the child window
                </a>
            </td>
        </tr>
    </table>
</form>

该部分的value="<?php echo (isset($_POST['OPRID']) ? $_POST['OPRID'] : ""); ?>"意思是:

  • value="..."- 在文本框中输入一些文本
  • <?php ... ?>- 执行一段 PHP 代码
  • echo ...- 打印一些文字
  • (isset($_POST['OPRID']) ? $_POST['OPRID'] : "");- 如果$_POST包含 的值OPRID,则 ( ?) 使用该值,否则 ( :) 不使用 ( "")
于 2013-10-23T07:35:20.263 回答
0

我看不到您在哪里使用了单选按钮。如果一切正常,请尝试在另一页上打印所有发布数据,以了解控件的值是否被传递。print_r($_POST) 您应该将单选控件名称视为 POST 数组的键。在第一页说你有 <input type="radio" name="radio1" value="this is value"/>

那么 print_r($_POST) 的结果应该是 Array=>("radio1"=>"this is value")

作为 $_POST["radio1"] 访问它的值

于 2013-10-23T06:31:19.473 回答
0

对于复选框,如果仅选中复选框,则 php 传递值。所以您可以检查是否收到了 PHP 页面的复选框。如果接收到的用户选择了它或者用户没有选择,则没有复选框名称传递到 PHP 页面。

所以你可以检查

if(isset($_POST["chk"]))

...如果返回true,则表示用户选中复选框,如果不是用户未选中...

于 2013-10-23T06:24:47.137 回答
0

复选框只有在被选中时才会传递一些东西。如果已设置,则使用 isset 检查它们,或者在具有相同名称和默认值的复选框之前添加一个隐藏字段(如果选中,它将被复选框覆盖)。

于 2013-10-23T06:27:18.360 回答