我早些时候问了一个有关此问题(已删除)的问题,我将以下内容作为三个单独的脚本。我现在走的很远,并结合了这些功能,但出现了错误。
基本上,我基于id
获得Month的单选按钮的值,以及Year的另一个单选按钮的值。我将它们设置为jquery中的变量,并按预期方式在控制台中显示。它们还在div
中显示,我正在使用id
$("#Year_Display").empty();
引用$("#Year_Display").append(year);
。正如您在下面看到的,我在Month上的工作也是如此。
我想使用ajax发布这些变量,所以我可以用相应的月份和年份填充<div>
。
这里是我所拥有的:
<script>
//Selects Month and Year Value
$(document).ready(function(){
$("#Jan, #Feb, #Mar, #Apr, #May, #Jun, #Jul, #Aug, #Sep, #Oct, #Nov, #Dec") // select the radio by its id
.change(function(){
if( $(this).is(":checked") ){ // check if the radio is checked
var month = $(this).val();
console.log(month);
$("#Month_Display").empty();
$("#Month_Display").append(month);
}
});
$("#1, #2, #3, #4")
.change(function(){
if( $(this).is(":checked") ){
var year = $(this).val();
console.log(year);
$("#Year_Display").empty();
$("#Year_Display").append(year);
}
});
// ajax retrieve
$.ajax({
url:'includes/handlers/ajax_load_data.php',
type:'POST',
data:{'month':month, 'year':year},
success: function(data) {
$('#myDIV').html(data);
}
});
});
</script>
我遇到的错误是jquery-3.3.1.min.js:2 Uncaught ReferenceError: month is not defined
,但是当我单击不同的月份和年份时,它们在控制台和页面上均按预期显示。
我从事这项工作已经很久了,不求助;我一直在这里和其他站点的答案中将其拼凑在一起。如您所见,我的jquery / ajax并不是那么好,所以任何帮助/引用都将不胜感激。
答案 0 :(得分:1)
我在代码中添加了一些更改,可以在全局级别声明var,并且可以在所有函数中使用它,因此使用此方法不会给未定义月份的错误, 希望对您有帮助!
//选择月份和年份值
$(document).ready(function () {
var month;
var year;
$("#Jan, #Feb, #Mar, #Apr, #May, #Jun, #Jul, #Aug, #Sep, #Oct, #Nov, #Dec") // select the radio by its id
.change(function () {
if ($(this).is(":checked")) { // check if the radio is checked
month = $(this).val();
console.log(month);
$("#Month_Display").empty();
$("#Month_Display").append(month);
if (month != null && month != '' && year != null && year != '') {
loadData(month, year);
}
}
});
$("#1, #2, #3, #4")
.change(function () {
if ($(this).is(":checked")) {
year = $(this).val();
console.log(year);
$("#Year_Display").empty();
$("#Year_Display").append(year);
if (month != null && month != '' && year != null && year != '') {
loadData(month, year);
}
}
});
// ajax retrieve
function loadData(month, year) {
$.ajax({
url: 'includes/handlers/ajax_load_data.php',
type: 'POST',
data: { 'month': month, 'year': year },
success: function (data) {
$('#myDIV').html(data);
}
});
};
});