Javascript Jquery从选择框中获取值并进行AJAX调用
我有多个选择框,我想从中获取每个选择选项的值,并根据选择的选项进行AJAX调用。我怎样才能做到这一点 到目前为止,我有:Javascript Jquery从选择框中获取值并进行AJAX调用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有多个选择框,我想从中获取每个选择选项的值,并根据选择的选项进行AJAX调用。我怎样才能做到这一点 到目前为止,我有: $('select[name="restaurant_chosen"]').on('change', function() { var restaurant_id = $(this).val(); }); $('select[name="date_chosen"]').on('change', function() { var date_chosen = $
$('select[name="restaurant_chosen"]').on('change', function() {
var restaurant_id = $(this).val();
});
$('select[name="date_chosen"]').on('change', function() {
var date_chosen = $(this).val();
});
$.ajax({
type: 'GET',
url: '/api/' + restaurant_id + '/' + date_chosen +
success: function(data) {
console.log(data)
},
error: function(data){
console.log('error')
}
});
选择的两个变量
restaurant\u id
和date\u
我得到了未定义的错误。我做错了什么?应该是这样的。您正在私有函数上下文中声明变量,您不能(也不能)从外部访问该上下文
简单的解决方案是,将两个变量的声明移出onchange
事件处理程序(使其更全局)
函数sendToServer(值、onSuccess、onError){
var餐厅标识,选择日期;
//在这里,使用值填写所选的餐厅id和日期
$.ajax({
键入:“GET”,
url:'/api/'+餐厅id+'/'+选择的日期,//用逗号替换加号
成功:功能(数据){
onSuccess(数据);
},
错误:函数(数据){
onSuccess(数据);
}
});
}
$('select')。在('change',function()上{
var值=[];
$('select')。每个(函数(索引){
v=$(this.val();
n=$(this.attr(“name”);
push({“name”:n,“value”:v});
});
日志(“值:”,值);
sendToServer(值,
功能(数据){
控制台日志(数据);
},
功能(数据){
console.log('错误',数据);
}
);
});代码>
沃尔沃汽车
奥迪
红色
蓝色
这是一个非常基本的oops,称为变量访问范围。您已经在change函数中声明了变量,并在ajax调用中绑定到access。让它们全球化使用。
var restaurant_id;
date_chosen;
$('select[name="date_chosen"]').on('change', function() {
date_chosen = $(this).val(); // skip the var here
});