PHP - 将单选按钮的总值传递给下一页

时间:2012-11-12 14:36:27

标签: php radio

我有一个PHP页面,显示带有单选按钮的MySQL查询总数。这是一个表格。用户应选择一个单选按钮来填写所有表格,然后总数将存储在数据库中,我想将所选单选按钮的总值传递到下一页并打印出来。

我知道这很容易,但我无法解决问题。

我的PHP页面代码如下:

    <?php

   session_start();
   $Load=$_SESSION['login_user'];
   include('../connect.php');
   $sql= "Select name from student where ID='$Load'";
   $username = mysql_query($sql);
    $id=$_SESSION['login_user'];

                if (isset($_POST['submit']))

{  
  $v1 = $_POST['v1'];
  $v2 = intval($_POST['v2']);
  $v3 = intval($_POST['v3']);
  $v4 = intval($_POST['v4']);
  $total = $2 + $v3 + $v4 ;

 mysql_query("INSERT into Form1 (ID,P1,P2,P3,TOTAL)
 values('$id','$v2','$v3','$v4','$total')") or die(mysql_error());
 header("Location: mark.php");
 }


?>


<html>

<head>

<?php


if(!isset($_SESSION['login_user']))

header("Location:index.html");



?>
  <title>Q&A Form</title>

</head>

<body>


    <center><form method="post" action="mark.php"  >

    <table style="width: 20%" >


<font size='4'>
    <table style="width: 70%">
        <tr>
<th > School Evaluation <font size="4" > </font></th>


<tr>
<th> Your attendance<font size="4" > </font></th>
<td>  <input type="radio" name ="v2" value = "4"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v2" value = "3"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v2" value = "2"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v2" value = "1"    onclick="updateTotal();" /></td>    
</tr>

<tr>
<th > Your grades  <font size="4" > </font></th>
<td>  <input type="radio" name ="v3" value = "4"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v3" value = "3"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v3" value = "2"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v3" value = "1"    onclick="updateTotal();" /></td>    
</tr>

<tr>
<th >Your self-control <font size="4" > </font></th>
<td>  <input type="radio" name ="v4" value = "4"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v4" value = "3"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v4" value = "2"    onclick="updateTotal();" /></td>
<td>  <input type="radio" name ="v4" value = "1"    onclick="updateTotal();" /></td>    
</tr>       


        </tr>
    </table>


    <br>
   <td><input type="submit" name="submit" value="Submit">

    <input type="reset" name="clear" value="clear" style="width: 70px"></td>

 </form> 
</center>
</div>


</body>
</html>

当用户按下提交时,所有收音机输入都将存储在数据库中,它将转到mark.php我想在此页面中打印出总数如何将总数传递到下一页?

1 个答案:

答案 0 :(得分:0)

PHP脚本中可能存在错误。

此...

$total = $2 + $v3 + $v4 ;

应该是

$total = $v2 + $v3 + $v4 ;

你的脚本有点令人困惑......这是我的重构建议:

<?php
session_start();
if (!isset($_SESSION['login_user'])) {
    // User is not logged in so we redirect it to the login page
    header("Location:index.html");
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>Q&A Form</title>
    <!-- (head stuff) --></head>
<body>
<?php

//User is logged, let's retrieve user information
$userID = $_SESSION['login_user'];

// I Assume this is your database handler helper
include('../connect.php'); 
$query = sprintf("SELECT name FROM student WHERE ID = '%s'", $userID);
$username = mysql_query($query);

/* MULTI STEP FORM */

if (isset($_POST['submit_laststep'])) {
    // User completed the multistep form
    // We insert data in the database

    // Insert data into database here (I don't know which data it is)
    // but you can retrieve the data accessing $_SESSION
    $v2 = $_SESSION['form_values']['step1']['v1'];
    $v3 = $_SESSION['form_values']['step1']['v2'];
    $v4 = $_SESSION['form_values']['step1']['v3'];
    $total = $_SESSION['form_values']['step1']['total'];

    $query = "INSERT into Form1 (ID,P1,P2,P3,TOTAL) values('$id','$v2','$v3','$v4','$total')";
    mysql_query($query) or die(mysql_error());

    // Print a thank you notice
    print "<span>Thank you $username for submitting this form</span>";

} else if (isset($_POST['submit_step1'])) {
    // User completed first step of form

    // Handle form values
    $v1 = $_POST['v1'];
    $v2 = intval($_POST['v2']);
    $v3 = intval($_POST['v3']);
    $v4 = intval($_POST['v4']);

    $_SESSION['form_values']['step1'] = array();
    // Save values for further steps
    // Mode 1 - Manual
    /*
    $_SESSION['form_values']['step1'] = array
    (
        'v1' => $v1,
        'v2' => $v2,
        'v3' => $v3,
        'v4' => $v4
    );
    */
    // This process can be form value agnostic, like this:
    // Mode 2 - More automatic (field agnostic, saves everything).
    foreach ($_POST as $k => $v) {
        $_SESSION['form_values']['step1'][$k] = $v;
    }

    // Calculate total
    $total = $v2 + $v3 + $v4 ;

    // save total to session too
    $_SESSION['form_values']['step1']['total'] = $total;

    // We print the sum of the radio buttons like you asked
    print "<span>Total from previous: $total</span>"; 
    include ('step2.form.html');

} else {
    //User has not completed step 1, so we show step 1 form
    include ('step1.form.html');
}
?>
</body>
</html>

<强>形式:

表单1:

<form id ="step1" method="post" action="">
    <table>
        <tr><th colspan="4">School Evaluation</th></tr>
        <tr><td colspan="4">Your attendance</td></tr>
        <tr>
            <td><input type="radio" name ="v2" value = "4"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v2" value = "3"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v2" value = "2"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v2" value = "1"    onclick="updateTotal();" /></td>    
        </tr>

        <tr><td colspan="4">Your grades</td></tr>
        <tr>
            <td><input type="radio" name ="v3" value = "4"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v3" value = "3"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v3" value = "2"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v3" value = "1"    onclick="updateTotal();" /></td>    
        </tr>

        <tr><td colspan="4">Your self-control</td></tr>
        <tr>
            <td><input type="radio" name ="v4" value = "4"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v4" value = "3"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v4" value = "2"    onclick="updateTotal();" /></td>
            <td><input type="radio" name ="v4" value = "1"    onclick="updateTotal();" /></td>    
        </tr>
        <tr>
            <td colspan="4">
                <input type="submit" name="submit_step1" value="Next">
                <input type="reset" name="clear" value="clear" style="width: 70px">
            </td>
        </tr>
    </table>
</form>

form2示例!

<form id ="steplast" method="post" action="">
    <!-- form stuff -->
    <input type="submit" name="submit_steplast" value="Submit">
</form>