从外部php表单传递日期字段


Pass Date field from outside php form

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

答案和问题一样简单,你不能那样做。

您有一些选择,最明显的是在合法的HTML表单中有一个适当命名的隐藏字段。

<input type="hidden" id="outsideDateForPhp" name="outsideDate">

,然后触发一个客户端js事件,以便当日期选择器在表单外部更改时,值被传输到表单内部的隐藏字段。

或者您可以在提交表单时进行此传输。这些都不是理想的,但是您可能有自己的理由不把它放在表单中。

你当然需要煞费心思地确保你发送的日期在PHP端被正确过滤,然后再对它做任何事情,比如把它放在数据库中,或者回显到屏幕上——不管它是来自隐藏字段还是日期选择器。

将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>

在进一步阅读了你的文章后,这可能只是部分地解决了你的需求。如果您希望在每个字段中都是这种情况,则需要有几个隐藏字段,当文本输入原始日期框时更新(尝试jquery的keyup/keydown函数)

当你提交页面的时候,只有表单标签的所有数据将不会张贴在表单标签之外,这就是为什么你不能访问<input type="date" id="outsideDate" name="outsideDate">