0

我对 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_date转到另一个页面document_creation/7bform.php,但它不起作用。document_creation/7bform.php看起来像这样:

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

当我尝试打印这些变量时,它们显示为空白。我哪里错了?

4

3 回答 3

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
}
于 2013-03-23T16:21:37.427 回答
0

另外,只是一个有用的提示...


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

那很混乱......你应该使用短标签


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

更进一步,1 是 TRUE,所以你实际上并不需要它......


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

于 2013-03-23T16:22:11.540 回答
0

删除 $_POST 调用周围的括号。此外,您可能需要考虑对字符串进行消毒。我知道你是新手,但每当我教别人 PHP 表单时,我总是首先描述卫生程序。在@rckhoe,不要使用短标签。短标签非常容易出错并且依赖于浏览器变量。

您可以在此处阅读有关清理您的输入的信息。htmlspecialchars()使用和使用参数化查询总是很好的做法。阅读更多关于 PHP/SQL 的内容也不会有什么坏处。

$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];
于 2013-03-23T16:29:35.963 回答