1

下面是带有输入/输出的简单表单的代码。出于某种原因,似乎只有问题 1 有效,问题 2 和 3 只是简单地回应“出了点问题”。我以完全相同的方式对所有三个问题进行了编码,所以我不确定为什么问题二和三没有正确处理。任何建议将不胜感激。

这是 HTML 表单:

      <form action="processor.php" method="post">
      <h4>Question # 1</h4>
      <p>What grade are you in?</p>
      <label class="checkbox"><input type="checkbox" name="grade" value="1"> Freshmen</label>
      <label class="checkbox"><input type="checkbox" name="grade" value="2"> Sophomore</label>
      <label class="checkbox"><input type="checkbox" name="grade" value="3"> Junior</label>
      <label class="checkbox"><input type="checkbox" name="grade" value="4"> Senior</label>

      <h4>Question # 2</h4>
      <p>What is your current GPA?</p>
      <select>
      <option name="gpa" value="4">3.5 or above</option>
      <option name="gpa" value="3">3.0-3.4</option>
      <option name="gpa" value="2">2.5-2.9</option>
      <option name="gpa" value="1">2.0-2.4</option>
      <option>Lower</option>
      </select>

      <h4>Question # 3</h4>
      <p>Where do you excel the most academically?</p>
      <select multiple="multiple">
      <option name="school" value ="1">Mathematics</option>
      <option name="school" value ="2">Literature</option>
      <option name="school" value ="3">History</option>
      <option name="school" value ="4">Humanities</option>
      <option name="school" value ="5">Science</option>
      </select>
      <div class="button">
      <button class="btn btn-primary" input type="submit" name="submit" href="processor.php">Submit</button>
      </div>
      </form>

这是处理器:

  <?php

 function Grades () {
 $grade = $_POST['grade'];
 if ($grade =="1") {
 echo "You're a freshmen";
 } elseif ($grade == "2") {
echo "You're a sophomore";
 } elseif ($grade == "3") {
echo "You're a junior.";
 } elseif ($grade == "4") {
echo "You're a senior.";
 } else {
echo "Something is wrong.";
 }

 }

 function Gpa () {
 $gpa = $_POST['gpa'];
 if ($gpa =="1") {
    echo "You strongly need to up your GPA.";
} elseif ($gpa == "2") {
    echo "You're an average student.";
} elseif ($gpa == "3") {
    echo "You're an above average student.";
} elseif ($gpa == "4") {
    echo "You're an excellent sudent.";
} else {
    echo "Something is wrong.";
}

}

function School () {
 $school = $_POST['school'];
 if ($school =="1") {
    echo "You're into Math";
 } elseif ($school == "2") {
    echo "You're into Lit";
 } elseif ($school == "3") {
    echo "You're into history.";
 } elseif ($school == "4") {
   echo "You're into humanities.";
 } elseif ($school == "5") {
   echo "You're into science.";
 } else {
   echo "Something is wrong.";
 }

 }

 include('viewpage.php');

?>

和查看页面:

     <h4>Question # 1</h4>
     <p><?php Grades($grade); ?></p>
     <h4>Question # 2</h4>
     <p><?php Gpa($gpa); ?></p>
      <h4>Question # 3</h4>
     <p><?php School($school); ?></p>
4

2 回答 2

1

问题就在这里

 <select name="gpa">
 <option value="4">3.5 or above</option>

访问$_POST['gpa'] <select>标签应该有name属性作为gpa<option>标签

为了$_POST['School']

<select  name="school" multiple="multiple">
<option value ="1">Mathematics</option>
于 2013-04-06T02:05:05.217 回答
0

我也认为有些人在查看页面代码时认为是错误的。成绩、Gpa、学校功能没有变量。但是你像这样调用这些函数, <?php Grades($grade); ?> <?php Gpa($gpa); ?> <?php Gpa($School); ?> 像下面这样替换这些代码 <?php Grades(); ?> <?php Gpa(); ?> <?php Gpa(); ?>

如果用户没有在问题 1 n 问题 2 中选择选项,你也会得到错误。你必须添加代码来检查..

于 2013-04-06T02:48:15.333 回答