【问题标题】:getting value from post or session从帖子或会话中获取价值
【发布时间】:2016-04-11 15:42:45
【问题描述】:

大家好,我正在尝试创建一个拖放页面,我想在重新加载时维护 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;
    ?>

【问题讨论】:

  • 你似乎正在关闭你的 while() 循环 within &lt;option&gt;: &lt;option value="&lt;?php echo $row[2];?&gt;"&gt;&lt;?php echo $row[2];}?&gt;&lt;/option&gt; (请参阅 $row[2];} &lt;------ 之后的右花括号将它移到外面,如下所示: &lt;option value="&lt;?php echo $row[2];?&gt;"&gt;&lt;?php echo $row[2]; ?&gt;&lt;/option&gt;&lt;?php } ?&gt;
  • 这样做只会得到一个值。
  • 谁能提供建议。我没有太多时间完成。

标签: php session post


【解决方案1】:

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

session_start()

同样,它必须放在您打算使用 $_SESSION 变量的每个 PHP 脚本的顶部。如果你不这样做,它将继续没有错误,但不会保存。

【讨论】:

  • 我已经写了那个代码..抱歉没有提到。
  • @VinitaVaswani 单击按钮后,是否会将您重定向到相关脚本所在的页面?如果是这样,我不建议使用$_SESSION,因为必须事先设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多