2013-03-23 46 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']; 
相关问题