2014-02-08 54 views
0

我对PHP的知识非常有限,并会感谢任何帮助。如何使用PHP将表单值传递到多个页面?

我想创建一个PHP测验,其中每个问题在不同的页面上。在第三页上,对第一页和第二页的答案进行评分和计算。问题是我只得到最后一个答案的分数(从第二页开始)

我试图使用会话,但可能会搞砸了一些东西。此外,我不使用数据库。

在第一页(q1.php)我有这种形式

<form action="q2.php" method="post"><li> 
    <h3>Koji ste pol?</h3> 

    <div> 
    <input type='radio' name='answer1' id='answer1' value='A' /> 
    <label for='answer1A'>Muško</label> 
    </div> 

    <div> 
    <input type='radio' name='answer1' id='answer1' value='B' /> 
    <label for='answer1B'>Žensko</label> 
    </div> 
    </li><input type="submit" value="posalji" /></form> 

在第二页(q2.php)我有这样的代码

<?php 
session_start(); 
$_SESSION['answer1'] = $_POST['answer1']; 
?> 

<form action="rezultat.php" method="post"><li> 
    <h3>Da li ste zaposleni?</h3> 

    <div> 
    <input type='radio' name='answer2' id='answer2' value='A' /> 
    <label for='answer2A'>Da</label> 
    </div> 

    <div> 
    <input type='radio' name='answer2' id='answer2' value='B' /> 
    <label for='answer2B'>Ne</label> 
    </div> 
    </li><input type="submit" value="posalji" /></form> 

而对第三页(rezultat.php)需要计算第1页和第2页的答案

<?php 
session_start(); 
$_SESSION['answer1'] = $_POST['answer1']; 
$_SESSION['answer2'] = $_POST['answer2']; 
?> 

Vaš rezultat je: 

<?php 
$answer1= $_POST['answer1']; 
$answer2= $_POST['answer2']; 

$score = 0; 

if ($answer1 == "A"){$score += 5;} 
if ($answer1 == "B"){$score += 4;} 

if ($answer2 == "A"){$score += 1;} 
if ($answer2 == "B"){$score += 5;} 

echo "$score"; ?> 

请帮忙,提前谢谢。

回答

4

在您第三页(rezultat.php),应删除这一行:

$_SESSION['answer1'] = $_POST['answer1'];

它不再需要为你已经从第二页上的分配值$_SESSION['answer1'](q2.php )。你当前做的是对$_SESSION['answer1']因为$_POST['answer1']第二页(q2.php)根本不存在分配值。

然后替换此:

$answer1= $_POST['answer1']; 
$answer2= $_POST['answer2']; 

$answer1= $_SESSION['answer1']; 
$answer2= $_SESSION['answer2']; 

您可能需要将其分配给$_SESSION之前,您$_POST添加一些验证层。

0
$_POST['answer1']; 

在rezultat.php上不可用,所以现在你用不存在的POST数据覆盖答案。 之前阅读$ _ POST []字段,运行快速检查,看看它的实际可用

if(isset($_POST['answer1'])){} 

这将给予你一个线索,ANSWER1不可用最终PAE。

0

“answer1”字段在第二页(q2.php)中不可用,所以您不能使用$ _POST ['answer1']。

使用下面的修正脚本!

 <?php 
     session_start(); 
     $_SESSION['answer2'] = $_POST['answer2']; 
    ?> 

    Vaš rezultat je: 

    <?php 
    $answer1= $_SESSION['answer1']; 
    $answer2= $_SESSION['answer2']; 

    $score = 0; 

    if ($answer1 == "A"){$score += 5;} 
    if ($answer1 == "B"){$score += 4;} 

    if ($answer2 == "A"){$score += 1;} 
    if ($answer2 == "B"){$score += 5;} 

    echo "$score"; ?> 
相关问题