从外部php表单传递Date字段

时间:2015-08-17 14:51:54

标签: php forms

我有一个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

3 个答案:

答案 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">