我得到了它的工作,将日期隐藏在目标网站后面。另一方面,我使用$ _GET ['val']来获取值。但是这 太过于hacky ,我很想看到一个更安全的解决方案。但是现在它有效。
我想要实现的目标
第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";
?>
警报显示所选日期,因此变量包含日期。但我无法理解,所以请将它发送到我的下一页。
感谢您的帮助!
答案 0 :(得分:1)
您正在发布dateText ...尝试发布日期,如:
$.post('getdate.php', {'val': date});
答案 1 :(得分:0)
你有很多选择让它发挥作用。以下是其中三个:
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'];
....
选择更适合您问题的那个。
答案 2 :(得分:0)
您的脚本将日期发送到脚本 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>
答案 3 :(得分:0)
它可能也很简单,因为val参数在引号中,我不认为它应该是。
$.post('getdate.php', {val: date});