我想请问下两个问题
我有两个页面一个是post.php代码是<?php
echo"<form action='post2.php' method='post'>";
echo"分类:<br />";
echo"<select size='1' name='id' >";
echo"<option value='' selected>请选择分类</option>";
require_once("conn.php");
$exec="select * from class order by id desc"; 
$result=mysql_query($exec);
while($rs=mysql_fetch_object($result))
  {
echo"<option value='".$rs->id."'>".$rs->name."</option><br />";
@mysql_close($conn);
}
echo"</select>";
echo"<br /><br />";
echo"<input type='submit' value='下一步' name='submit' /><br />";
echo"</form>";
?>post2.php页面代码是<?php
$id=$_POST['id'];
$name=$_POST['name'];
echo"<input type='test' name='id' value='".$id."' /><input type='test' name='name' value='".$name."' /><br />";
echo"<input type='text' name='time' value='这里怎么写呢?'  /><br />";
?> 我现在遇到的问题是,当从post.php页面选择后点下一步,跳到post2.php页面,这个时候,id这个值能传过来,可是name这个值不能传过来,我换成GET也不行,请问该怎么做呢?
还有一个问题是我先在下面的这个TIME的输入框中自动填写当前时间,按时区不同,自动填写,就是value这个值,因为访问我博客的人来自世界各地,我想让他写的时候,获得的时间是他所在地的时间,请问这个又该怎么实现呢?
或者只是现实当前的北京时间,我的租用的空间在国外,这又怎么实现呢?谢谢

解决方案 »

  1.   

    加一个隐藏域就可以了。
    <input type="hidden" name="name"  value=".$rs-> name.">time();

    $_SERVER[REQUEST_TIME];php获取的时间是0时区的。在中国,时区就要+8小时。比如当前获取到的时间是:1197321268那么就要1197321268+(3600*8),则为北京时间了
      

  2.   

    1 一般的做法,你可以设置一个时区的 cookie  .2 可以根据IP得到地区,再得到时区.(.....)3 可以用 JS 获取客户端时间,再POST到服务端,进行时区猜测.建议,服务器始终保存格林威治时间...
      

  3.   

    楼上三星的说法挺好,最简单的方法莫过于第三种了,最好的方法莫过于第二种。至于第一种,不知道怎么想,
    再就是你说的传值,既然你想把两个值都传过去,
    echo" <option   value='".$rs-> id / $rs->name "'> ".$rs-> name." </option> <br   /> ";
    写法应该是错的,希望楼主看得懂,就是把它们以一种形式发过去,例如上面这种形式,发过去以后以/分开就可以得到两个了。 
      

  4.   

    我知道要传name过来的话,要加一个隐域,但我不晓得该如何实现
    <?php 
    echo" <form   action='post2.php'   method='post'> "; 
    echo"分类: <br   /> "; 
    echo" <select   size='1'   name='id'   > "; 
    echo" <option   value=''   selected> 请选择分类 </option> "; 
    require_once("conn.php"); 
    $exec="select   *   from   class   order   by   id   desc";   
    $result=mysql_query($exec); 
    while($rs=mysql_fetch_object($result)) 
        { 
    echo" <option   value='".$rs-> id."'> ".$rs-> name." </option> <br   /> "; 
    @mysql_close($conn); 

    echo" </select> "; 
    echo" <br   /> <br   /> "; 
    echo"<input   type='hidden'   name='name'     value='".$rs->name."'> ";
    echo" <input   type='submit'   value='下一步'   name='submit'   /> <br   /> "; 
    echo" </form> "; 
    ?> 可是我在选择上面的分类的时候,下面的这个隐域的value值是不变化的,始终是空,我想请问下,怎么样才能能把上面所选择的值传过来呢?谢谢
      

  5.   

    南郭先生你的写法echo"   <option value='".$rs->   id   /   $rs-> name   "'>   ".$rs->   name."   </option>   <br />   "; 有两个问题,请教下
    第一,这里value='".$rs->id / $rs-> name"' 这里是不是少了一个.号?还有,你说的“例如上面这种形式,发过去以后以/分开就可以得到两个了”这个话,我该怎么实现呢?谢谢
      

  6.   

    加一个隐藏域: 
    <input   type="hidden"   name="name"     value=".$rs->   name."> 
    时间:
    time(); 
    ----Mycalf 说得我赞同!
      

  7.   

    我知道了加隐藏域,请看我代码我知道要传name过来的话,要加一个隐域,但我不晓得该如何实现 
    <?php   
    echo"   <form       action='post2.php'       method='post'>   ";   
    echo"分类:   <br       />   ";   
    echo"   <select       size='1'       name='id'       >   ";   
    echo"   <option       value=''       selected>   请选择分类   </option>   ";   
    require_once("conn.php");   
    $exec="select       *       from       class       order       by       id       desc";       
    $result=mysql_query($exec);   
    while($rs=mysql_fetch_object($result))   
            {   
    echo"   <option       value='".$rs->   id."'>   ".$rs->   name."   </option>   <br       />   ";   
    @mysql_close($conn);   
    }   
    echo"   </select>   ";   
    echo"   <br       />   <br       />   ";   
    echo" <input       type='hidden'       name='name'           value='".$rs-> name."'>   "; 
    echo"   <input       type='submit'       value='下一步'       name='submit'       />   <br       />   ";   
    echo"   </form>   ";   
    ?>   可是我在选择上面的分类的时候,下面的这个隐域的value值是不变化的,始终是空,我想请问下,怎么样才能能把上面所选择的值传到隐藏值呢?谢谢