PHP无法读取post值

PHP无法读取post值,php,post,Php,Post,我无法读取php页面上设置的post值“to”和“From”日期。 任何帮助都将不胜感激。代码如下:- 在代码中,您可以找到我尝试过的三个代码段,但都不起作用。不确定所需的修复 <? include("adminlogin.php"); include("classes/tc_calendar.php"); $myCalendar = new tc_calendar("stdt", true, false); $myCalendar->setIcon("images/icon

我无法读取php页面上设置的post值“to”和“From”日期。 任何帮助都将不胜感激。代码如下:-

在代码中,您可以找到我尝试过的三个代码段,但都不起作用。不确定所需的修复

<?  
include("adminlogin.php");

include("classes/tc_calendar.php");

$myCalendar = new tc_calendar("stdt", true, false);
$myCalendar->setIcon("images/iconCalendar.gif");
$myCalendar->setPath("./");
$myCalendar->setYearInterval(2000, 2015);
$myCalendar->dateAllow('2000-01-01', '2015-12-31');
$myCalendar->setDateFormat('j F Y');
//$myCalendar->setHeight(350);    
//$myCalendar->autoSubmit(true, "form1");

$myCalendar2 = new tc_calendar("enddt", true, false);
$myCalendar2->setIcon("images/iconCalendar.gif");
$myCalendar2->setPath("./");
$myCalendar2->setYearInterval(2000, 2015);
$myCalendar2->dateAllow('2000-01-01', '2015-12-31');
$myCalendar2->setDateFormat('j F Y');
//$myCalendar2->setHeight(350);   
//$myCalendar2->autoSubmit(true, "form1");

$stdt1=$_POST['stdt'];
$enddt1=$_POST['enddt'];
echo "dates are";
echo $stdt1;
echo $enddt1;

// function to download report
function export_excel_csv()
{
    $init_sql = "select distinct(proj_id) from timeshiftentry_master where dt>='$stdt1' and dt<='$enddt1'";
    $init_res=mysql_query($init_sql);

    //header info for browser
    $filename = "WP_List_" . date('Ymd') . ".xls";
    header("Content-Type: application/vnd.ms-excel; name='excel'");
    header("Content-Disposition: attachment; filename=\"$filename\"");
    header("Pragma: no-cache");
    header("Expires: 0");

    /*******Start of Formatting for Excel*******/
    //define separator (defines columns in excel & tabs in word)    
    $sep = "\t"; //tabbed character
    ob_end_clean();

    //start of printing column names as names of MySQL fields
    /*for ($i = 0; $i < mysql_num_fields($result); $i++) 
    {
        if($i == 0)
        {
            echo "S. No." . "\t";
        }
        echo mysql_field_name($result,$i) . "\t";
    }
    echo "Employee Name" . "\t";
    echo "Hours Booked" . "\t";
    print("\n");*/

    $SerialNum = 0;
    while($init_row=mysql_fetch_array($init_res))
    {
        $sql = "SELECT * FROM project_master where proj_id='$init_row[0]'";
        //execute query
        $result = mysql_query($sql) or die (mysql_error());
        //end of printing column names
        //start while loop to get data
        while($row = mysql_fetch_array($result))
        {
            // get the emplyoee details 
            $projid=$row[0];
            $projnm=$row[1];
            $sql_emp="Select distinct(emp_no),emp_name from timeshiftentry_master where proj_id='$projnm' and  dt>='$stdt1' and dt<='$enddt1'";
            $res_emp=mysql_query($sql_emp);
            while($row_emp=mysql_fetch_array($res_emp))
            {
                $sql_hrs="select sum(wrkhrs) from timeshiftentry_master where proj_name='$projnm'  and emp_no='$row_emp[0]' and dt>='$stdt1' and dt<='$enddt1'";
                $res_hrs=mysql_query($sql_hrs);
                $row_hrs=mysql_fetch_array($res_hrs);
                if($row_hrs[0] >= 0)
                {
                    $SerialNum++;
                    // insert to excel
                    $schema_insert = "";
                    for($j=0; $j<mysql_num_fields($result);$j++)
                    {
                        if($j==0)
                        {
                            $schema_insert .= "$SerialNum".$sep;
                        }
                        if(!isset($row[$j]))
                            $schema_insert .= "NULL".$sep;
                        elseif ($row[$j] != "")
                            $schema_insert .= "$row[$j]".$sep;
                        else
                            $schema_insert .= "".$sep;
                    }
                    $schema_insert .= "$row_emp[1]".$sep;   
                    $schema_insert .= "$row_hrs[0]".$sep;
                    $schema_insert = str_replace($sep."$", "", $schema_insert);
                    $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
                    $schema_insert .= "\t";

                    print(trim($schema_insert));
                    print "\n";
                    // inserted one row
                }
            }
        }
    }
    exit();
}

/*if(!isset($_POST)) // Code Snippet 1
{
    export_excel_csv();
}*/

/*if($_SERVER['REQUEST_METHOD']=="POST")  // Code Snippet 2
{
    $chk1= $_POST['download'];

    if($chk1=='Download')
    {
        export_excel_csv();
    }
}
else
{

}*/

if($_SERVER['REQUEST_METHOD']=="POST")  // Code Snippet 3
{ 
    if(isset($_POST['download'])) 
    { 
        $stdt1=$_POST['stdt'];
        $enddt1=$_POST['enddt'];
        export_excel_csv(); 
    } 
} 
else 
{
}

?> 

<script language="javascript">
function check()
{
    if(download)
    {
        if(document.f1.stdt.value=="0000-00-00")
        {
            alert("Please Enter Start Date")
            show=false;
            return false;
        }
        if(document.f1.enddt.value=="0000-00-00")
        {
            alert("Please Enter the End Date")
            show=false; 
            return false;
        }
        if(document.f1.stdt.value>document.f3.enddt.value)
        {
            alert("Dates not allowed.")
            show=false;
            return false;
        }
    }
    return true;
} 
</script>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Bombardier TSM System</title>

<style type="text/css">
<!--
.style1 {font-size: small}
.style2 {color: #FFFFFF}
.style3 {font-size: x-small}
-->
</style>

</head>

<body>

<form name="f1" method="POST" action="" onSubmit="return check()"> 

<script language="javascript" src="calendar.js"></script>

<br>

<table align="center" cellspacing="5">

<tr>
<th colspan="2"><font color="#993300" size="4">Download Hours Booking Report</font></th>
</tr>

<tr>
<td>&nbsp;</td>
</tr>

<tr>
<td align="right"><font color="#993300">From : </font></td>
<td><?$myCalendar->writeScript();?></td>
</tr>

<tr>
<td align="right"><font color="#993300">To : </font></td>
<td><?$myCalendar2->writeScript();?></td>
</tr>

<tr>
<td>&nbsp;</td>
</tr>

<tr>
<td colspan="2" align="center"><input type="submit" name="download" value="Download"  id="download" onSubmit="download=true"/></td
</tr>

</table>

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<?include("footer.php");?>

</form>
</body>
</html>

必须使用函数中的参数传递此值,如下所示

function export_excel_csv($stdt1, $enddt1) { // create function with parameter here

}
调用时,必须传递相关参数

if($_SERVER['REQUEST_METHOD']=="POST")  // Code Snippet 3
{ 
    if(isset($_POST['download'])) 
    { 
        $stdt1=$_POST['stdt'];
        $enddt1=$_POST['enddt'];
        export_excel_csv($stdt1, $enddt1); // pass parameter here
    } 
} 

事实上,我不知道这个日历类和功能,但我认为您可以做一件事来解决您的问题,如下所示

首先,您可以使用javascript通过使用document.f1.stdt.valuedocument.f1.enddt.value

对于PHP,您可以使用:
$\u请求[“stdt”]

您也可以参考此链接以获取有关tc_日历的任何帮助

如果需要更多帮助,请告诉我


谢谢

您已经定义了函数范围之外的变量,您无法访问此变量

或者你的问题的解决方案是

function export_excel_csv()
{
   global $stdt1,$enddt1;
......

}

$myCalendar->writeScript()-此处生成了什么HTML代码?它必须包含名称为的输入标记。类型为??你能给我确切的代码吗?$myCalendar->writeScript()将提供一个日历符号,单击它将允许用户选择日期、月份、年份。print\r($\u POST)将返回所有POST值。如果您得到'stdt'和'enddt'的值,那么使用datetime类对象来转换输入。尝试后,它成功了。。谢谢