我要包含一个页面(FileA.php),该页面在首次加载时应显示今年(2014年)的数据。在该页面中有一个选择器,允许选择不同的年份,将新年发送为post,处理程序php再次包含fileA.php,但显示所选年份的数据。
我的问题是,在第一次加载时没有显示任何内容,但之后(在帖子之后)它可以正常工作。代码(FileA.php)的剥离版本如下:
if (!isset($_SESSION['Anio'])){
$today = getdate();
$_SESSION['Anio']=$today['year'];
}
echo "<br>Anio: ".$_SESSION['Anio']."<br>";//for checking purposes only
“工作”部分正在选择列名称包含该年份的列。部分代码如下:
@mysql_select_db("mydb") or die( "Unable to select database");
mysql_query ("SET NAMES 'utf8'");
$query=mysql_query('select * from mytable') or die(mysql_error());
$field = mysql_num_fields( $query );
for ( $i = 0; $i < $field; $i++ ) {
if (strpos(mysql_field_name( $query, $i ),$_SESSION['Anio']) !== false) {
$names[] = mysql_field_name( $query, $i );
}
}
然后我有一个显示结果的表,以及一个可以选择一年的dropbox,并将所选年份作为帖子发送给处理程序php。收到此帖后,将再次显示原始文件(FileA.php)。 handler.php如下:
if(isset($_POST['Anio'])) {
$_SESSION['Anio']=trim($_POST['Anio']);
include 'FIleA.php';
}
如上所述,一旦$ _SESSION ['Anio']在发布后的handler.php中“生成”,所有代码都可以正常工作。但是在第一次到达页面时,getdate生成的$ _SESSION ['Anio']似乎无法识别。如果我回显$ _SESSION ['Anio'],它会显示一个似乎正确的值(2014年的第一次加载,以及之后的选定年份)。 认为getdate()有一个特殊类型,我试过
1.
$_SESSION['Anio']=(int)$today['year'];
2.
$_SESSION['Anio']=(string)$today['year'];
3.
$temp=$today['year'];
$_SESSION['Anio']="$temp";
不幸的是,它们都不起作用。 有人发现了这个问题吗?
答案 0 :(得分:0)
只是为了完整性:这确实是一个类型的问题。代码开始按如下方式定义变量:
if (!isset($_SESSION['Anio'])){
$hoy = getdate();
$tmp=$hoy['year'];
$_SESSION['Anio']=(string)$tmp;
}