我有一个表单,这个表单位于一个名为question1.php的页面上,我希望它在按下提交按钮时加载question2.php。
<form action="question2.php" method="post">
<input type="radio" name="ans" value="cuboid">
<input type="radio" name="ans" value="cone">
<input type="radio" name="ans" value="cylinder">
<input type="radio" name="ans" value="sphere">
<input type="submit" value="submit" name="submit">
</form>
但我也有这个PHP代码
<?php
if(isset($_POST['submit'])) {
if(isset( $_POST['ans'])) {
$selected_answer = $_POST['ans'];
if($selected_answer == "cuboid") {
$_SESSION["cuboid"] = ((int)$_SESSION["cuboid"]) + 1;
}
}
}
?>
编辑:我做了一个更简单的演示试图更好地解释自己,我有三页。
page1.php中
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<form action="page2.php">
<input type="submit" value="submit" name="submit">
</form>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
?>
</body>
</html>
使page2.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<form action="page3.php" method="post">
<input type="radio" name="ans" value="color">
<input type="submit" value="submit" name="submit">
</form>
<?php
// Echo session variables that were set on previous page
if(isset($_POST['submit'])) {
if(isset($_POST['ans'])) {
$selected_answer = $_POST['ans'];
if($selected_answer == "color") {
$_SESSION["favcolor"] = "red";
}
}
}
?>
</body>
</html>
和page3.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
echo "Favorite color is " . $_SESSION["favcolor"] . ".";
?>
</body>
</html>
所以在第一页我宣布会话变量“favcolor”,然后在第二页上,如果用户选择单选按钮我想要将颜色更新为红色,但是它不会对我产生影响,在第三页它仍然打印绿色
答案 0 :(得分:1)
您在page2.php上遇到了问题,因为您在page3.php上提交表单,但是您正在处理page2.php上的提交请求。所以我在下面为你纠正。
page1.php中
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<body>
<form action="page2.php" method="post">
<input type="submit" value="submit" name="submit">
</form>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
?>
</body>
</html>
使page2.php
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<body>
<form action="page3.php" method="post">
<input type="radio" name="ans" value="color">
<input type="submit" value="submit" name="submit">
</form>
</body>
</html>
page3.php
<?php session_start(); ?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
if (isset($_POST['submit'])) {
if (isset($_POST['ans'])) {
$selected_answer = $_POST['ans'];
if ($selected_answer == "color") {
$_SESSION["favcolor"] = "red";
}
}
}
echo "Favorite color is " . $_SESSION["favcolor"] . ".";
?>
</body>
</html>
答案 1 :(得分:0)
我希望这应该有用。
$_SESSION["cuboid"] = isset($_SESSION["cuboid"]) ? $_SESSION["cuboid"] : 0;
$_SESSION["cuboid"] = ((int)$_SESSION["cuboid"]) + 1;
答案 2 :(得分:0)
据我所知,您正试图重定向到另一个网页。
尝试使用header()功能发送HTTP标头。
header('Location: http://example.com/page3.php');
exit();
如果HTTP标头最初没有工作,请使用ob_start()打开输出缓冲区。
答案 3 :(得分:0)
您正在错误的页面中检查$ _POST ['ans']。
目前,当用户输入page2.php时,您正在检查'ans',这是在用户提交包含该输入元素的表单之前。
当您在page2.php上提交表单时,操作会将请求发送到page3.php,因此您实际上希望将将颜色设置为绿色的if语句移动到第3页的顶部(会话开始下方)。 PHP