PHP 日历分页 AJAX 问题
PHP Calendar Pagination AJAX problems
我正在尝试将 AJAX 分页添加到我的日历中,以避免重新加载整个站点,因为日历位于辅助选项卡中,在重新加载时会重置为主选项卡。
通常我的 "NEXT MONTH"-button 会被包裹在一个 link 中,它使用日期的 GET 值刷新同一个页面,如下所示:
<a href="?date=<?php echo $nextDate; ?>">
<button type="button" class="btn">
NEXT MONTH
</button>
</a>
效果很好。但是当我尝试将表单中的 $nextDate 值传递给 AJAX 并重新加载页面时,就好像它没有获取 POST 值。
HTML:
<form method="post">
<input type="hidden" class="form-control" name="the_date" value="<?php echo $prevDate; ?>" />
<button type="button" data-name="next-month" class="btn">
NEXT MONTH
</button>
</form>
Javascript:
$("body").on( "click", "[data-name='next-month']", function() {
var the_date = $(this.form).find(".form-control[name=the_date]").val();
ajaxRequest = $.ajax({
type: "POST",
url: "index.php",
data: { the_date: the_date}
}).done(function (result) {
alert(the_date)
$("#calendar_container").load("index.php #calendar_container");
})
});
我这样做的方式是否正确,或者是否有某种原因导致 POST-值在发送到同一个 url 时没有被提取?如果您对我如何解决这个问题有任何建议,那将是我的一天!
当您发送数据时,将参数名称写入字符串常量。
data: { "the_date": the_date}
没有
data: { the_date: the_date}
您提出 ajax 请求两次。第二个没有任何参数。
所以替换下一行
$("#calendar_container").load("index.php #calendar_container");
和
$("#calendar_container").html(result);
我正在尝试将 AJAX 分页添加到我的日历中,以避免重新加载整个站点,因为日历位于辅助选项卡中,在重新加载时会重置为主选项卡。 通常我的 "NEXT MONTH"-button 会被包裹在一个 link 中,它使用日期的 GET 值刷新同一个页面,如下所示:
<a href="?date=<?php echo $nextDate; ?>">
<button type="button" class="btn">
NEXT MONTH
</button>
</a>
效果很好。但是当我尝试将表单中的 $nextDate 值传递给 AJAX 并重新加载页面时,就好像它没有获取 POST 值。
HTML:
<form method="post">
<input type="hidden" class="form-control" name="the_date" value="<?php echo $prevDate; ?>" />
<button type="button" data-name="next-month" class="btn">
NEXT MONTH
</button>
</form>
Javascript:
$("body").on( "click", "[data-name='next-month']", function() {
var the_date = $(this.form).find(".form-control[name=the_date]").val();
ajaxRequest = $.ajax({
type: "POST",
url: "index.php",
data: { the_date: the_date}
}).done(function (result) {
alert(the_date)
$("#calendar_container").load("index.php #calendar_container");
})
});
我这样做的方式是否正确,或者是否有某种原因导致 POST-值在发送到同一个 url 时没有被提取?如果您对我如何解决这个问题有任何建议,那将是我的一天!
当您发送数据时,将参数名称写入字符串常量。
data: { "the_date": the_date}
没有
data: { the_date: the_date}
您提出 ajax 请求两次。第二个没有任何参数。 所以替换下一行
$("#calendar_container").load("index.php #calendar_container");
和
$("#calendar_container").html(result);