2012-09-28 47 views
0

所以PHP Session变量,在这里我有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

+0

你是否在'page.php?'中发布了'font_syle'参数? – moonwave99

+0

所以你想在第二页打印$ font_style – user1529342

回答

4

page.php包括action_form.php。这台$font_style的值:

$font_style = $_POST["font_syle"]; 

由于page.php文件不是刚刚通过的形式发布,它的设置$font_style为空字符串。所以当你来回应它时,没有什么可以回应。

+0

我该如何解决这个问题? – user1689166

+0

最简单的方法是直接引用$ _SESSION变量 – andrewsi

+0

你能给我一个关于我的代码的例子吗? – user1689166

0

你可以在page.php中做echo $_SESSION["font_syle"];来打印它

0

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

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

这里的解决办法是改变:

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

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

OR

打印会话变量来代替。

+0

我想在多个页面中使用表单的结果。 – user1689166

+0

@ user1689166然后将其存储在数据库内或数组$ _SESSION内,并在每一页上调用第一行的'session_start()'。 –

+0

我怎样才能使$ _SESSION中的“$ total”? – user1689166