2010-09-21 57 views
0

這裏是我的代碼,我試圖將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

回答

4

或許在第三行,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

3

您在混合GETPOST。您的形式張貼,但在你的第二個if要檢查isset($_GET['from'])

1

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

你發送整個形式POST,所以得到的將是空的。

0

由於您有兩個隱藏字段與日期輸入字段具有相同的名稱,所以您要從哪個'from'和'to'字段返回值。你需要不同的名字。如果你得到的是像1969這樣的日期,那麼你的輸入不是一個有效的開始日期。 $ from和$來自隱藏的輸入?你沒有在代碼片段中提到它們