2

我在这里发现了类似的问题,但大多数解决方案对我不起作用。我有一个带有日期选择器的表单,我想将选定的日期传递给我的 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 的内容。我的日期返回类似于 2013 年 1 月 1 日。有没有办法将这两者结合起来并使其成为日期时间类型,以便我可以添加到我的数据库中?太感谢了!

4

3 回答 3

3

我没有尝试过,但我想知道可能只是您的控件缺少“名称”,请尝试将其更改如下:

<input type="text" id="mydate" name="mydate"/>
于 2013-01-28T06:38:47.723 回答
3

由于您似乎对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);
于 2013-01-28T06:40:38.407 回答
2

对输入框进行了更改

<input type="text" id="mydate" />

至 :

<input type="text" id="mydate" name="mydate"/>

当您提交表单时,它将提交文本框 mydate 的名称值,您可以通过$_GET["mydate"]

于 2013-01-28T06:39:29.347 回答