未在php中发送隐藏变量

问题描述:

这里是我的代码,我试图将from和to的值发回到同一页面。在页面的顶部,我有这样的代码:(它总是回声“中的其他循环”,我不明白什么是错的这个简单的事情。)未在php中发送隐藏变量

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> 
+0

'似乎是非常直观的。如果你打算使用[短标签](http://www.php.net/manual/en/ini.core.php#ini.short-open-tag),为什么不使用更易读的 '形式? – 2010-09-21 18:05:57

+0

事实证明,我必须用代替 ?>代码的每一部分,并且一切都很好。感谢提示丹尼尔。 – 2010-09-21 18:23:59

或许在第三行,if (isset($_GET['from'])),应该不是说if (isset($_POST['from']))。 (第一行建议预期POST请求 - 它不能同时包含POST和GET)。

+0

好的,是的,这是错误的。现在我怎么能找回来自和来自领域的值。现在我得到这个:'in if loop 1969-12-31 1969-12-31' from和to的值,我如何检索它们? – 2010-09-21 16:50:06

+0

尝试将第5行和第6行上的'$ _GET'的两个实例更改为'$ _POST'。 – Hammerite 2010-09-21 17:58:59

+0

我做到了。它正在检查from和to是否设置,但没有获取字段的值。 – 2010-09-21 18:09:16

您在混合GETPOST。您的形式张贴,但在你的第二个if要检查isset($_GET['from'])

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

你发送整个形式POST,所以得到的将是空的。

由于您有两个隐藏字段与日期输入字段具有相同的名称,所以您要从哪个'from'和'to'字段返回值。你需要不同的名字。如果你得到的是像1969这样的日期,那么你的输入不是一个有效的开始日期。 $ from和$来自隐藏的输入?你没有在代码片段中提到它们