现从一个主界面host.php设计一个链接:编辑界面host_edit.php,并传入一个ID值给它。
链接全名如下:host_edit.php?id=hostname在host_edit.php程序中大致如下
<?php
  if ($_GET)
  {
     $hostname = $_GET['id'];
  }  if ($_POST)
  {
     $nret = function(....);
     if ($nret == 1)
        header(host.php);
     else
        echo "error info";
  }
?>
<form name="host_edit" action="host_edit.php" method="post">
/*都是表单*/
</form>现在的问题是:
如果表单提交失败,界面还停留在本界面,但$_GET['id']值已经消失了,即使做了个隐藏表单如果第二次提交失败还是会消失。请问有没有办法实现$_GET['id']在本界面不会消失,进入其他界面会立即消失,非常感谢。

解决方案 »

  1.   

    在连接转换的时候不要用 header,最好用 js 实现host_edit.php
    $id = @$_GET['id'];  //进入页面肯定是有个id的对吧,在头部接收if( @$_POST['submit'] == "提交" )
    {
        if(//成功)
        {
            ...
            exit( "<script>alert('提交成功');top.location.href='xxx.php';</script>" );
        }
        else
        {
            exit( "<script>alert('提交失败');top.location.href='host_edit.php?id={$id}';</script>" );
        }
    }
      

  2.   

    怎么传回来啊?恩,如果能传回来是可以的,但我尝试用header("location:host_edit.php?id=hostname");是不行的,系统提示没有这个页面。
      

  3.   

    <form name="host_edit" action="" method="post">把action空着应该就可以保留GET串了
      

  4.   

    host.php页面转向host_edit.php?id=hostname 
    页面传值时,首先放到session里,就算以后在post也可以保存下来页面再次跳转的时候,把$_SESSION['id']设为空,或者session_destroy()即可<?php 
      if ($_GET) 
      { 
        $hostname = $_GET['id'];       //记得验证和过滤
        $_SESSION['id'] = $hostname;   //看这里,看这里,没有小痘痘~~
      } 
    //下面的代码不变
      

  5.   

    <form name="host_edit" action="host_edit.php?id=<?php echo $_GET['id'];?>" method="post"> 
      

  6.   

    以GET方式提交的吗?
    可以存在COOKIE里呀