[英]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.