我有一个php页面,顶部有一个日期字段,下面有多个需要访问该字段的表单。如何在表单外部传递日期字段值?以下是我尝试完成的一个简单示例:
<body>
<p>Outside Date: <input type="date" id="outsideDate" name="outsideDate"></p>
<form action='' method="post">
<p>Inside Date: <input type="date" id="insideDate" name="insideDate"></p>
<input type="submit" name="submit" value="Test It">
</form>
<?php
if (isset($_POST['submit'])) {
// See which date I can access
$outDate = $_POST['outsideDate'];
$inDate = $_POST['insideDate'];
echo "Outside date is: " . $outDate;
echo "Inside date is: " . $inDate;
}
// Gives 'undefined index: outsideDate...line 16
// Then prints "Outside date is: Inside date is: 2015-08-02"
// (Note that NO date is printed for $outDate)
?>
</body>
我已经四处寻找我认为是一个简单的问题,但似乎无法找到解决它的答案。刚开始使用PHP,所以对此有任何帮助表示赞赏。
-thx
答案 0 :(得分:1)
答案就像问题一样简单,你不能这样做。
你有一些选择,最明显的是在合法的HTML表单中可能有一个适当命名的隐藏字段。
<input type="hidden" id="outsideDateForPhp" name="outsideDate">
然后触发客户端js事件,以便当日期选择器在表单外部更改时,该值将传输到表单内的隐藏字段。
或者您可以在提交表单时进行此转移。这些都不是理想的,但可能你有自己的理由不把它放在表格中。
您当然需要努力确保在您使用它之前在PHP端正确过滤发送日期,例如将其放入数据库或将其回显到屏幕 - 无论是来自隐藏的领域还是日期选择器。
答案 1 :(得分:1)
将outsideDate放在表单中,以便您可以像尝试一样检索它。
<form action='' method="post">
<p>Outside Date: <input type="date" id="outsideDate" name="outsideDate"></p>
<p>Inside Date: <input type="date" id="insideDate" name="insideDate"></p>
<input type="submit" name="submit" value="Test It">
</form>
进一步阅读您的帖子后,这可能只能部分解决您的需求。如果您希望在每个字段中都是这种情况,则需要在将文本输入原始日期框时更新几个隐藏字段(尝试jQuerys keyup / keydown函数)
答案 2 :(得分:1)
当您提交仅时间表格标签的页面时,所有数据都将发布您不访问的外部表格标签
<input type="date" id="outsideDate" name="outsideDate">