我对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_date
和end_date
传递到另一个页面document_creation/7bform.php
,但它无效。 document_creation / 7bform.php 如下所示:
<?php
$start_date = ($_POST['start_date']);
$end_date = ($_POST['end_date']);
当我尝试打印这些变量时,它们显示为空白。我哪里错了?
答案 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'];