2013-03-23 44 views
0

我對PHP和表單有點新。我試圖在PHP表單中將一個變量從一個頁面發送到另一個頁面。將變量以php形式傳遞到另一頁

這是形式:

<form name="dates" action="document_creation/7bform.php" method="post" onsubmit="return mandatoryFields()"> 
    <table width="748" border="0" cellspacing="2" cellpadding="2"> 
    <tr> 
     <td class="main_text"> 
     <div align="right" class="main_text">*Contract Start Date:</div> 
     </td> 
     <td> 
     <input name="start_date" type="text" value="YYYY-MM-DD" maxlength="100" class="datepick" id="date1" /> 
     </td> 
    </tr> 
    <tr> 
     <td class="main_text"> 
     <div align="right" class="main_text">*Contract End Date:</div> 
     </td> 
     <td> 
     <input name="end_date" type="text" value="YYYY-MM-DD" maxlength="100" class="datepick" id="date2" /> 
     </td> 
    </tr> 
    <tr> 
     <td height="36" colspan="2"> 
     <table width="100" border="0" align="center" cellpadding="2" cellspacing="2"> 
      <tr> 
      <td width="68"> <input name="submit" type="submit" id="Submit" value="Generate 7B Form" <?php if($disable ==1){?>disabled<?php }?>/></td> 
      <td width="48"> 
       <label><input type="reset" name="reset" value="Reset" /></label> 
      </td> 
      <td width="46"><div align="center"><a href="javascript:history.go(-1);">Back</a></div></td> 
      </tr> 
     </table> 
     </td> 
    </tr> 
    </table> 
</form> 

我想通過start_dateend_datedocument_creation/7bform.php另一個頁面,它不工作。 document_creation/7bform.php看起來是這樣的:

<?php 
    $start_date = ($_POST['start_date']); 
    $end_date = ($_POST['end_date']); 

當我嘗試打印這些變量,他們出來爲空白。我哪裏錯了?

+1

您是否在7bform.php的第一行嘗試了print_r($ _ REQUEST)或print_r($ _ POST)?表單看起來不錯,但不確定你的7bform.php中有什麼,可能會導致問題 – Marc 2013-03-23 16:21:34

回答

1

一切看起來不錯,所以我認爲你的功能mandatoryFields()返回false。

除此之外,你可能想用這個您檢索頁面上:

if(isset($_POST['start_date']) && !empty($_POST['start_date'])){ 
// now assign values 
} 

if(isset($_POST['end_date']) && !empty($_POST['end_date'])){ 
// now assign values 
} 
+0

我刪除了mandatoryFields()函數並編寫了你建議的代碼,但是當我嘗試打印出測試日期時,它仍然不起作用。奇。 – user2093306 2013-03-23 16:42:58

+0

@ user2093306 - 你有更多可以向我們展示的代碼嗎? – 2013-03-23 18:29:07

+0

問題分類。感謝您的幫助 – user2093306 2013-03-24 12:24:01

0

而且,只是一個有用的提示...


<?php if($disable ==1){?>disabled<?php }?> 

那非常混亂...你應該使用短標籤


<?=($disable==1 ? " disabled" : "")?> 

而且更進一步,1爲真,那麼你實際上並不需要它...


<?=($disable ? " disabled" : "")?> 

+0

感謝您的提示 – user2093306 2013-03-23 16:35:42

0

刪除你的周圍$ _ POST調用括號。 另外,您可能需要考慮清理字符串。我知道你是新人,但每當我教一個人的PHP表單時,我總是首先描述衛生程序。 在@rckhoe,不要使用短標籤。短標籤非常麻煩並且依賴於瀏覽器變量。

你可以閱讀關於消毒你的輸入here。使用htmlspecialchars()並且使用parameterized queries也不錯。閱讀更多關於PHP/SQL的內容也不會有什麼壞處。

$start_date = $_POST['start_date']; 
$end_date = $_POST['end_date']; 
相關問題