【问题标题】:Php not working in formPhp无法正常工作
【发布时间】:2015-02-12 11:02:23
【问题描述】:

更新 由于某种原因,我的页面没有从表单中提取信息,它希望将所有字段保持为空,即使它被选中,它也应该更改 QuestionOptionId 的值。我想要它做的是,当您选中单选按钮时,它会将值保存到会话中,以便以后可以像测验一样提交。由于某种原因,我的代码不会更改值,甚至不会获取 QuestionOptionId 的值

代码如下

<?php
session_start();
//check if the user is already logged in.
if (!isset($_SESSION['username'])) {
    header('Location: login.php');
}
$QuestionOptionId = "";
//get value from post data and store into session
if (isset($_POST['QuestionOptionId'])){
    $_SESSION['QuestionOptionId'] = $_POST['QuestionOptionId'];
}
//get back from session
if (isset($_SESSION['QuestionOptionId'])){
    $QuestionOptionId = $_SESSION['QuestionOptionId'];
}
print $_SESSION['username'];
?>

<?php
$con=mysqli_connect("localhost","root","root","root") or die();
                //execute query
                $query ="SELECT UserId from user where username = '".$_SESSION['username']."'";     
                $result=mysqli_query($con, $query);
                $UserId=$result->num_rows;

while ($row = $result->fetch_assoc()) {  

   echo $row['UserId']; 
   $UserId=$row['UserId'];//etc...
 }

?>

<body>
    <header>
        <p class="text-center">
            Welcome :<?php echo $_SESSION['username'];
                            echo $UserId;
                    ?>
                </p>
                <?php 
                        $query="SELECT * from testview";
                        $res=mysqli_query($con, $query);
                        $rows=$res->num_rows;
                            $i=1;
                        while($result=mysqli_fetch_array($res))
                {?>
                   <?php if($i==1){?>
                   <div id='question<?php   echo $i;?>' class='cont'>
                   <form name="QuestionTime"Method="post" action="push.php">
                  <p class='questions' id="qtext<?php echo $i;?>"> <?php echo $i?>.<?php echo $result['QuestionText'];?></p>
                  <input <?php if ($QuestionOptionId=='3'){ echo 'checked="checked"';} ?>type="radio" value="1" id='radio1_<?php echo $result['QuestionOptionId'];?>'name="1"/>

                  <?php
                  $query="SELECT OptionChoiceName FROM testview WHERE OptionChoiceId=3";
                        $res=mysqli_query($con, $query);
                        $rows=$res;
                            $i=1;
                          while($result=mysqli_fetch_array($res))

                 echo  $result['OptionChoiceName'];?>

                  <input <?php if ($QuestionOptionId=='4'){ echo 'checked="checked"';} ?> type="radio" value="2"id='radio1_<?php echo $result['QuestionId'];?>'name="1"/>
                  <?php

                  $query="SELECT OptionChoiceName FROM testview WHERE OptionChoiceId=4";
                        $res=mysqli_query($con, $query);
                        $rows=$res;
                            $i=1;

                          while($result=mysqli_fetch_array($res))

                 echo  $result['OptionChoiceName'];

                 ?>

<br><br>Selected Value: <?php echo $QuestionOptionId; ?>

                  <br/>

                  <?php  

                    $_SESSION['UserId']=$UserId;
                  ?>

                 <button id='next<?php echo $i;?>' class='next btn btn-success' type='submit'>Finish</button>
                 </div> 
                    <?php } $i++;} ?>
                    </form>
                    </div>
                    </div>

                    </header></header>

任何帮助都会非常感谢

【问题讨论】:

  • 你能扩展这个答案吗

标签: php session post


【解决方案1】:

你没有在 QuestionOptionIdQuestionId 上发泄。试试这个查询 -

SELECT OptionChoiceName, QuestionOptionId, QuestionId FROM testview WHERE OptionChoiceId=3

这应该是 -

if(isset($_SESSION['QuesitonOptionId']))
{
    $QuestionOptionId= $_SESSION['QuesitonOptionId'];
}

【讨论】:

  • 遗憾的是,我仍然遇到同样的错误 :( 我认为它与表单输入有关,因为当它显示为 php 时,我得到了类似 type="radio" value="4" name ="1"/> False 而不是显示单选按钮
猜你喜欢
  • 2015-11-15
  • 2019-01-13
  • 2021-08-16
  • 2012-10-28
  • 2013-10-13
  • 2012-12-06
  • 1970-01-01
  • 2016-01-19
  • 2013-06-21
相关资源
最近更新 更多