我已经在这个网站上阅读了很多答案,但所有的解决方案都没有帮助过这个问题。我有代码使用PHP根据他们为调查项目提交的表单数据重定向页面。标题应根据下拉列表中的用户选择重定向到另一个页面。所有这些都存储在我的localhost WAMP服务器上的www目录中。问题是,页面没有重定向到我在标题重定向中指定的页面,而只是重新加载当前页面。我需要它重定向到标题中指定的页面。
这是PHP:
<?php
session_start();
if(isset($_POST['post'])) {
$_SESSION['maintasked'] = $_POST['maintask'];
$_SESSION['dated'] = $_POST['date'];
$_SESSION['named'] = $_POST['name'];
session_write_close();
if(!empty($_POST['name']))
{
switch($_POST['maintask']) {
case "Pre Cabinet":
header('Location: /Tier2PreCabinet.php');
exit;
break;
case "At Cabinet":
header('Location: /Tier2AtCabinet.php');
exit;
break;
case "Post Cabinet":
header('Location: /Tier2PostCabinet.php');
exit;
break;
}
}
}
?>
这是HTML:
<!doctype html>
<html>
<head>
<meta charset = "utf-8">
<title>Advanced RV Time Records</title>
</head>
<body>
<h2>Advanced RV Time Capsule</h2>
<!-- This form grabs today's date from the JS run at page load and allows the user to change it if necessary -->
<p>Enter the date of the day the work was done.</p>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="date" id="theDate" value="" name ="date">
<!-- This form has the user select the name they will be working under. Must be completed. -->
<p id ="name" name="named">Enter the name of the worker performing the task. </p>
<select id="workers" name="name">
<option value =null></option>
<option>Brian</option>
<option>Mike G.</option>
<option>Anthony</option>
<option>Tom</option>
<option>Joe</option>
<option>Deury</option>
<option>Chris Puetzfeld</option>
<option>Chris Piercy</option>
<option>Frank</option>
</select>
<!-- This form has the user select the task they will be working on.-->
<p>Enter the main task that the worker will be doing</p>
<select id ="MainTask" name ="maintask">
<option id ="1">Pre Cabinet</option>
<option value ="2">At Cabinet</option>
<option value ="3">Post Cabinet</option>
</select>
<input type ="submit" value="Continue On">
</form>
</body>
</html>
答案 0 :(得分:0)
如果设置了选项框,则会传递值属性中的值,而不是文本。在您的选择框中,您的第一个选项没有值属性,因此将提交文本。但是,在第二个和第三个选项中,您的值为2
和3
,这将是提交的内容。您的PHP代码正在查找文本值,而不是将要提交的数字值。
您可以将第一个选项id="1"
更改为value="1"
,并在php中查找值1
,2
或3
。或者,您可以从选项value
和2
中删除3
,然后提交文字。