将php表单中的变量传递给另一个页面

时间:2013-03-23 16:15:12

标签: php forum

我对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']);

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

3 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

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


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

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


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

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


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

答案 2 :(得分:0)

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

您可以阅读有关清理输入here的信息。使用htmlspecialchars()并使用parameterized queries也是一种好习惯。阅读更多有关PHP / SQL的内容也不会有什么坏处。

$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];