隐藏的变量没有在PHP中发送

时间:2010-09-21 16:41:17

标签: php hidden

这是我的代码,我试图将from和to字段中的值发送回同一页面。在页面的顶部我有这个代码:(它总是回声'在其他循环',我不明白这个简单的事情有什么问题。)

if ($_POST['ok'])
{
if (isset($_GET['from']))
{
$tmp_fromdate=$_GET['from'];
$tmp_todate=$_GET['to'];
echo "in if loop<br/>";
echo $tmp_fromdate. "   ". $tmp_todate."<br/>";
$from_date=date("Y-m-d", strtotime($tmp_fromdate));
$to_date=date("Y-m-d", strtotime($tmp_todate));
echo $from_date. "   ". $to_date."<br/>";
$fdate=date("F d Y", strtotime($tmp_fromdate));
$tdate=date("F d Y", strtotime($tmptodate));
}
else
{
echo "in else loop<br/>";
$start_date='2010-08-01';
$end_date=date ("Y-m-d");
$sdate=date("F d Y", strtotime($start_date));
$edate=date("F d Y", strtotime($end_date));
}
}


<form id="form1" name="form1" method="post">
<div class="demo">

<label for="from">From</label>
<span id="sprytextfield1">
<input type="text" id="from" name="from" />
<span class="textfieldRequiredMsg">mm/dd/yyyy format only.</span>
</span>

<label for="to">to</label>
<span id="sprytextfield2">
<input type="text" id="to" name="to" />
<span class="textfieldRequiredMsg">mm/dd/yyyy format only.</span>
</span>

<input type="submit" id="ok" name= "ok" value="Change Dates"/>
<input type="hidden" name="from" VALUE="<? echo($from);?>"/>
<input type="hidden" name="to" VALUE="<? echo($to);?>"/>
</div>
</form>

4 个答案:

答案 0 :(得分:4)

也许第三行if (isset($_GET['from']))应该代之以if (isset($_POST['from']))。 (第一行表明需要POST请求 - 它不能同时是POST和GET。)

答案 1 :(得分:3)

您正在混合GETPOST。您的表单已发布,但在您的第二个if中,您正在检查isset($_GET['from'])

答案 2 :(得分:1)

将您的if (isset($_GET['from']))更改为if (isset($_POST['from']))

您将整个表单作为POST发送,因此GET将为空。

答案 3 :(得分:0)

从'和'到'字段,您希望返回值,因为您有两个与日期输入字段同名的隐藏字段。你想要那些不同的名字。如果你得到像1969这样的日期,那么你的输入不是一个有效的开始日期。来自隐藏输入的$ from和$来自哪里?你没有在代码片段中引用它们