0

所以,这里有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;
?>

我不知道为什么 page.php 上没有打印“$total”的值

4

3 回答 3

4

page.php 包括action_form.php. 这将值设置$font_style为:

$font_style = $_POST["font_syle"];

由于 page.php 不只是通过表单发布,因此它设置$font_style为空字符串。所以当你来回应它时,没有什么可以回应的。

于 2012-09-28T19:51:14.707 回答
0

您可以echo $_SESSION["font_syle"];在 page.php 中进行打印

于 2012-09-28T19:51:00.750 回答
0

原因是您的表单将action_form.php数据存储在变量$_SESSION中。

当您打开page.php数据时不再存在,因为$total不会在页面之间移动。

这里的解决方案是改变:

<form action="action_form.php" method="post">

为了

<form action="page.php" method="post">

或者

而是打印出会话变量。

于 2012-09-28T19:52:59.207 回答