如何在表单POST方法中传递jquery datepicker值?

时间:2012-12-17 22:25:25

标签: php jquery jquery-ui-datepicker

我在日期的表单中有一个输入文本,我使用JQuery datepicker来选择日期。

 <input type="text" id="datepicker" name="datepicker" value="Date"/>

当我使用表单发布将值发布到另一个php进行计算时。我没有单独从这个输入文本中获取值。我得到一个空值而不是选定的日期。

 $date=$_POST['datepicker'];

我不确定如何在表单POST中传递datepicker值。有人可以帮助我吗?

3 个答案:

答案 0 :(得分:8)

jQuery的datepicker与发布表单无关。如果您的表单设置为“发布”,那么在用户选择日期后,该输入字段中剩余的内容将随表单一起发送。

<form action="process.php" method="post"> 
  <input type="text" id="datepicker" name="datepicker" value="Date"/>
</form>

给你:

$date = $_POST['datepicker'];

但是,如果您的表单是作为“获取”请求发送的,则您需要以此方式访问它。

<form action="process.php" method="get"> 
  <input type="text" id="datepicker" name="datepicker" value="Date"/>
</form>

给你:

$date = $_GET['datepicker'];

答案 1 :(得分:3)

$( "#currentDate" ).datepicker("setDate", new Date("<?php echo $_POST['myCurrentDate'] ?>"));

适合我,阅读至少10种非常复杂的方法,然后意识到这是有效的。您每次都要实例化一个新值。您使用表单输入或其他技术将日期存储在PHP脚本中的某个位置,然后将其回收到上述语句中。因此重新加载不会影响结果。

如果未设置myCurrentDate,则默认设置它。将它设置为今天的日期需要php if语句将其设置为第一次(或重新加载页面)到新的Date(),而else语句可用于包含上述代码。

答案 2 :(得分:2)

这是一个带有日期选择器的简单表单

   <form id="myform" name="myform">
    <input type="text" id="datepicker" name="datepicker" value="Date"/>
    <input type="button" id="submitMe">
    </form>

现在你的jquery,我们将使用一些AJAX的东西:

//init datepicker
$(function() {
    $("#datepicker").datepicker({
        showButtonPanel: true
    });
});

//pass deatepicker to php
$("#submitMe").click(function() {
    $.ajax({
        type: 'POST',
        url: "pass.php",
        dataType: "json",
        data: $('#myform').serialize(),
        success: function(data) {
            console.log("Done");

        }
    });
 return false;
});​

最后是你的pass.php文件

<?php 
//note that date may have slashes or dots so we url decode it

$date = urldecode ($_GET['datepicker']);

echo "chosen date is: ".$date;
?>