从帖子或会话中获取价值

时间:2016-04-11 15:42:45

标签: php session post

大家好我试图创建一个拖放页面,我想在重新加载时维护floor_id。

我在点击按钮时从上一页获取floor_id,并且我将其添加到会话中,以便下次页面重新加载时不会出现任何错误。

但是当我从上一页中选择其他选项时,会话中存储的值相同,则不会使用post方法分配值。任何人都可以提供一些想法。

此页面是我从中获取所选ID。          

                 ?>
<form action="rooms.php" method="post">
  <select name="fl_type" id="ft" >
    <option value=0>Select Floor</option>
    <?php
                        while($row=mysqli_fetch_row($result))
                     {
                 ?>
    <option value="<?php echo $row[2];?>"><?php echo $row[2];}?></option>
<input type="submit" name="room" value="generate" />
  </form>
  <br />
</body>

我在这里获取代码并获取ID。

 <?php
    $i=0;
    require("config.php");
     $id=$_SESSION['restid']; 
    if(isset($_SESSION['ft'])){
    $ft=$_SESSION['ft'];
    $query="select floor_id,width,height from floor_m where floor_type='".$ft."' and rest_id='".$id."'";
    $res1=mysqli_query($con,$query);
    $row1=mysqli_fetch_row($res1);
    $fd=$row1[0];
    $w=$row1[1];
    $h=$row1[2];
    //echo $fd;
    $query2="select room_as_id,width,height,start_x,start_y,room_id,room_type_id from room_m where floor_id='".$fd."'";
    //echo $query2;
    $res2=mysqli_query($con,$query2);
    while($row2=mysqli_fetch_row($res2))
    {
        $room_type_id=$row2[6];
        $query3="select room_type from room_type where room_type_id='".$room_type_id."'";
        $res3=mysqli_query($con,$query3);
        $row3=mysqli_fetch_row($res3);
        $room='room_id'.$i;
        $width='width'.$i;
        $height='height'.$i;
        $start_x='x'.$i;
        $start_y='y'.$i;
        $room_id='room'.$i;
        $room_type='roomt'.$i;
        $response[$room]=$row2[0];
        $response[$width]=$row2[1];
        $response[$height]=$row2[2];
        $response[$start_x]=$row2[3];
        $response[$start_y]=$row2[4];
        $response[$room_id]=$row2[5];
        $response[$room_type]=$row3[0];
        //echo $response[$room_id];
        $i++;

    /*echo '<script>var data1 = '.json_encode($row2[0]).';var data2 = '.json_encode($row2[1]).';var data3 = '.json_encode($row2[2]).';var data4 = '.json_encode($row2[3]).';var data5 = '.json_encode($row2[4]).';//
    </script>*/
    }
    $i--;
    $response['count']=$i;
    echo '<script> var data='.json_encode($response).'</script>';
    $wd=500/$w;
    $_SESSION['wd']=$wd;
    $_SESSION['ft']=$ft;
    $_SESSION['fid']=$fd;
    echo '<script>var pf = '.json_encode($_SESSION['wd']).';
    var ft='.json_encode($_SESSION['ft']).';
    var fid='.json_encode($_SESSION['fid']).';</script>'; 
    $ht=$h*$wd; 
    }
    else{
        $ft=$_POST['fl_type'];

    //echo $ft;
    }

$sql="select width,height,floor_id from floor_m where floor_type='".$ft."' and rest_id='".$id."'";
    //echo $sql;
    $res=mysqli_query($con,$sql);
    $row=mysqli_fetch_row($res);
    $w=$row[0];
    $h=$row[1];
    $fid=$row[2];
    $wd=500/$w;
    $wd=round($wd);
    //echo $wd;
    $_SESSION['wd']=$wd;
    $_SESSION['ft']=$ft;
    $_SESSION['fid']=$fid;
    echo '<script>var pf = '.json_encode($_SESSION['wd']).';
    var ft='.json_encode($_SESSION['ft']).';
    var fid='.json_encode($_SESSION['fid']).';</script>'; 
    $ht=$h*$wd;
    //echo $wd,$ht;
    ?>

1 个答案:

答案 0 :(得分:0)

要使用$_SESSION变量,您需要在所有PHP脚本的顶部启动会话。这可以这样做:

session_start()

同样,它必须位于您打算使用$_SESSION变量的每个PHP脚本的顶部。如果你不这样做,它会毫无错误地继续下去,但不会保存。