2013-04-06 112 views
1

下面是带输入/输出的简单表单的代码。出于某种原因,只有问题1似乎有效,问题2和问题3只是回应“有些问题”。我把所有三个问题都以完全相同的方式编码,所以我不确定为什么问题二和问题三不能正确处理。任何建议将不胜感激。处理PHP表单时发生未知错误?

下面是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> 
+0

未知错误...什么信息?它怎么没有工作到你期望的 – 2013-04-06 01:56:27

+0

它不返回任何错误信息。对于问题1来说,无论我在表单上选择了什么,但回答问题二时,它会回吐“有些问题”,它应该像你正在研究人文科学或你的gpa吸吮一样,如上所述。 – buttonitup 2013-04-06 01:57:47

+1

似乎你没有为“下”设置名称。尝试'',然后编辑其余代码以适应更改/添加。 – 2013-04-06 01:58:42

回答

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> 
+1

谢谢。问题解决了。 – buttonitup 2013-04-06 02:12:50

0

也是我觉得有些想错了,鉴于网页代码。年级,Gpa,学校功能没有变化。但你调用这些函数是这样, <?php Grades($grade); ?> <?php Gpa($gpa); ?> <?php Gpa($School); ?> 替换这些代码就像下面 <?php Grades(); ?> <?php Gpa(); ?> <?php Gpa(); ?>

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

相关问题