我想为ajax
调用创建一个网址,如下所示:
myurl.php?ym=201609
ym
值应该来自下拉列表更改。然后该值需要通过以上url。
这是我尝试的方式:
$(document).ready(function () {
$("#salStatePeriod").change(function() {
window.period = $(this).val();
alert(window.period);
});
var table = $(".salary_statement").dataTable({
"ajax": {
"url":'./process_datatable.php?ym='+window.period,
"type":"POST",
"extend":function( response ) {
// $(this).json = response;
$("#total").html(this.data.total);
}
}
});
});
但它对我不起作用。它的输出如下:
/process_datatable.php?ym=undefined
任何人都可以告诉我,我是怎么想出来的?
答案 0 :(得分:2)
尝试直接在数据表ajax调用中获取值。
$("#salStatePeriod").change(function() {
$(".salary_statement").dataTable({
"ajax": {
"url":'./process_datatable.php?ym='+this.val(),
"type":"POST",
"extend":function( response ) {
// $(this).json = response;
$("#total").html(this.data.total);
}
}
});
});
答案 1 :(得分:0)
您需要将实际的ajax请求放在可以在下拉控件的change事件上调用的函数中:
$(document).ready(function () {
function sendNotification(index) {
$(".salary_statement").dataTable({
"ajax": {
"url":'./process_datatable.php?ym=' + index,
"type":"POST",
"extend":function( response ) {
// $(this).json = response;
$("#total").html(this.data.total);
}
}
});
}
$("#salStatePeriod").change(function() {
sendNotification($(this).val());
});
});
在分配window.period值后,您还可以将ajax代码放在change方法中:
$(document).ready(function () {
$("#salStatePeriod").change(function() {
$(".salary_statement").dataTable({
"ajax": {
"url":'./process_datatable.php?ym=' + $(this).val(),
"type":"POST",
"extend":function( response ) {
// $(this).json = response;
$("#total").html(this.data.total);
}
}
});
});
});