繁体   English   中英

jQuery Datepicker-将选定的日期作为php变量发送到新页面

[英]JQuery Datepicker - Send selected date to a new page, using it as a php variable

编辑

我得到了工作,将日期放在URL后面到目标站点。 另一方面,我正在使用$ _GET ['val']来获取值。 但是这种方式太笨拙了 ,我很乐意看到一个更安全的解决方案。 但是现在它可以工作了。


我正在努力实现的目标

第1页:显​​示日期选择器。 用户单击一个日期,然后定向到“页面2”。

第2页:显示先前选择的日期。

有什么问题? 如何将所选日期发送到新页面(以便将日期存储在php变量中)。 我也想在选择日期后自动将用户定向到新页面。


这是我到目前为止所得到的:

index.php (包含日期选择器)

$( function() {
    $( "#datepicker" ).datepicker({
        onSelect: function(dateText, inst) {                    
            var date = $('#datepicker').val();  
            alert(date);
            $.post('getdate.php', {'val': dateText});
        }
    });
}); 

getdate.php

<?php
  $value = $_POST['val'];
  echo "I got your value! $val";
?>

警报显示所选日期,因此变量包含日期。 但是我听不懂,所以把它发送到我的下一页。

感谢您的帮助!

您正在发布dateText ...尝试发布日期,例如:

$.post('getdate.php', {'val': date});

您有很多选择可以使其正常运行。 这是其中的三个:

1)将所选日期发送到第2页作为查询参数:

$( function() {
    $( "#datepicker" ).datepicker({
        onSelect: function(dateText, inst) {                    
            var date = $('#datepicker').val();  
            window.location.href = 'page2.php?date=' + date;
        }
    });
}); 

2)将您的日期选择器放入表单,并在选择日期后提交。

3)将日期存储在会话中的getdate.php文件中:

if (!empty($_POST['val'])) {
    session_start();
    $_SESSION['current_date'] = $_POST['val'];
}

...并检查您的第二页内容:

//page2.php
session_start();
if (!isset($_SESSION['current_date'])) {
    header('Location:index.php'); //redirect to first page if date not set
}

$selectedDate = $_SESSION['current_date'];
....

选择最适合您的问题的解决方案。

您的脚本会将日期发送到脚本getdate.php 但是您在浏览器中看不到它,因为您的ajax发布不会将用户发送到页面。 为此,您需要将脚本定向到该页面,一种方法是使用表单:

index.php也应具有以下形式:

<form id="hiddenfrm" action="getdate.php" method="post">
    <input type="hidden" name="val" id="val" />
</forms>


<script>
$( function() {
    $( "#datepicker" ).datepicker({
        onSelect: function(dateText, inst) {                    
            var date = $('#datepicker').val();  
            $('#val').val(date);
            $('hiddenfrm').submit();
        }
    });
}); 
</script>

它也可能像val参数用引号引起来一样简单,我认为不应该这样。

$.post('getdate.php', {val: date});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM