所以,我在这里有page1.php:
<form action="action_form.php" method="post">
<select name="font_syle">
<option value="tahoma">Tahoma</option>
<option value="arial">Arial</option>
</select>
<input type="submit" value="Done" />
</form>
这里是action_form.php:
<?php
session_start();
$font_style = $_POST["font_syle"];
$_SESSION["font_syle"] = $font_style;
if($_SESSION["font_syle"] == 'tahoma') $font_style = 10;
else if($_SESSION["font_syle"] == 'arial') $font_style = 20;
$total = $font_style;
echo $total;
?>
这里是page.php
<?php
ob_start();
include 'action_form.php';
ob_end_clean();
echo $total;
?>
我不知道为什么“$ total”的值不会打印在page.php
上答案 0 :(得分:4)
page.php包含action_form.php
。这会将$font_style
的值设置为:
$font_style = $_POST["font_syle"];
由于page.php尚未通过表单发布,因此将$font_style
设置为空字符串。因此,当你回应它时,没有任何东西可以回应。
答案 1 :(得分:0)
您可以在page.php中执行echo $_SESSION["font_syle"];
打印
答案 2 :(得分:0)
原因是您的表单将转到action_form.php
并将数据存储在变量$_SESSION
中。
当您打开page.php
时,数据不再存在,因为$total
不会在页面之间移动。
这里的解决方案是改变:
<form action="action_form.php" method="post">
的
<form action="page.php" method="post">
OR
改为打印会话变量。