我在这里发现了类似的问题,但大多数解决方案都不适合我。我有一个带有日期选择器的表单,我想将选定的日期传递到我的 php 文件,但它似乎不起作用。
我的 html 是这样的:
<form name="myForm" action="createevent.php" onsubmit="return validateForm()" method="get">
<p>Date<input type="text" id="mydate" /></p>
<input type="submit" name="submit" value="Submit" />
</form>
Javascript:
$(function() {
$.datepicker.setDefaults($.extend($.datepicker.regional[""]));
$("#mydate").datepicker({
onSelect: function(dateText, inst) {
var dateAsString = dateText;
alert (dateAsString); //this prints out the right value.
alert (mydate.value); //this value is the same as dateText
}
});
创建事件.php
function CreateEvent()
{
if(isset($_GET['submit']))
{
$mydate=$_GET['mydate'];
echo $mydate;
}
}
当我提醒 (mydate.value) 时,它给出了正确的值。但是当我在我的 php 文件中回显 $mydate 时,它没有显示任何内容。任何帮助表示赞赏!
更新:
谢谢大家!我犯了一个愚蠢的错误。添加“名称”属性有效。我有一个后续问题。我也有一个时间选择器,它返回类似 01:21 的内容。我的日期返回类似 01/01/2013 的内容。有没有办法将这两者结合起来并使其成为日期时间类型,以便我可以添加到我的数据库中?非常感谢!
最佳答案
因为在 onSelect
触发后您似乎没有对日期做任何事情,所以我看到的唯一错误是您的输入缺少 name 属性,并且它不可见在 $_GET
超全局
将您的输入更改为:
<input type="text" id="mydate" name="mydate"/>
它应该可以工作。
如果您计划将日期和时间存储在 MySQL 数据库中,您可以这样做。首先在您的表单中:
<form name="myForm" action="createevent.php" onsubmit="return validateForm()" method="get">
<p>Date<input type="text" id="mydate" name="mydate"/></p>
<p>Time<input type="text" id="mytime" name="mytime"/></p>
<input type="hidden" id="mydatetime" name="mydatetime"/>
<input type="submit" name="submit" value="Submit" />
</form>
然后,在您的 validateForm()
函数中,我将添加如下内容:
var date = $('#mydate').val(),
time = $('#mytime').val();
var datetime = [date.replace('/','-'),time].join(' '); // 01-01-2013 01:21
$('#mydatetime').val(datetime);
关于php - 将选定的日期值从日期选择器传递到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14556659/