Javascript jquery查询字符串创建问题
在我的php页面中,我使用jquery代码使其动态化,我在创建查询字符串时遇到问题,我的代码示例很小Javascript jquery查询字符串创建问题,javascript,jquery,Javascript,Jquery,在我的php页面中,我使用jquery代码使其动态化,我在创建查询字符串时遇到问题,我的代码示例很小 $.listSemester = function(selStreamId) { var obj = { year: $( "#batches option:selected" ).text() }; $.ajax({ url:"searchStream.php?" + $.param(obj), data:{ stream
$.listSemester = function(selStreamId) {
var obj = { year: $( "#batches option:selected" ).text() };
$.ajax({
url:"searchStream.php?" + $.param(obj),
data:{
streamId:selStreamId,
},
success: function(data) {
$('#sem').html(data);
},
error: function(error) {
alert(error);
}
});
}
我想在查询字符串中传递变量year,它的值来自另一个jquery代码。我的完整jquery代码是
$(document).ready(function() {
$('.sidebar-menu .system').addClass('active');
$('.sidebar-menu .system .student').addClass('active');
$(".sidebar-menu .system").tree();
$('#streams').change(function() {
$('#branches').html("<option value=''>-- Select --</option>");
$('#batches').html("<option value=''>-- Select --</option>");
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($(this).val() == '') {
}
else {
$.when($.streamSelection($(this).val())).then($.listSemester($(this).val()));
}
});
$('#branches').change(function() {
$('#batches').html("<option value=''>-- Select --</option>");
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($(this).val() == '') {
}
else {
$.branchSelection($(this).val());
}
});
$('#batches').change(function() {
if($(this).val() == '') {
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
}
else {
$('.divBefore').hide();
$('#division').val('');
$('.divAfter').show();
}
});
$('#division').change(function() {
$('.studList').hide();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
if($(this).val() != '') {
$('.semesterBefore').hide();
$('#sem').val('');
$('.semesterAfter').show();
}
});
$('#sem').change(function() {
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($(this).val() != '') {
$.when($('.btnAdd').attr('href', 'add.php?streamId='+$('#streams').val()+'&branchId='+$('#branches').val()+'&batchId='+$('#batches').val()+'&divisionId='+$('#division').val()+'&semId='+$('#sem').val()))
.then($('.btnExcel').attr('href', 'studExcel.php?streamId='+$('#streams').val()+'&branchId='+$('#branches').val()+'&batchId='+$('#batches').val()+'&divisionId='+$('#division').val()+'&semId='+$('#sem').val()))
.then($('.btnAdd').show())
.then($.studentList($('#streams').val(),$('#branches').val(),$('#batches').val(),$('#division').val(),$('#sem').val()));
}
});
});
$.streamSelection = function(selStreamId) {
$.ajax({
url:"searchBranch.php",
data:{
streamId:selStreamId
},
success: function(data) {
$('#branches').html(data);
},
error: function(error) {
alert(error);
}
});
}
$.branchSelection = function(selBranchId) {
$.ajax({
url:"searchBatch.php",
data:{
branchId:selBranchId,
},
success: function(data) {
$('#batches').html(data);
},
error: function(error) {
alert(error);
}
});
}
$.listSemester = function(selStreamId) {
var obj = { year: $( "#batches option:selected" ).text() };
$.ajax({
url:"searchStream.php?" + $.param(obj),
data:{
streamId:selStreamId,
},
success: function(data) {
$('#sem').html(data);
},
error: function(error) {
alert(error);
}
});
}
$.studentList = function(streamId,branchId,batchId,divisionId,semId) {
$.ajax({
url:"searchStudent.php",
data:{
selStreamId : streamId,
selBranchId : branchId,
selBatchId : batchId,
selDivisionId : divisionId,
selSemId : semId
},
success: function(data) {
$('.studList').html(data);
$('.studList').show();
if(data.length > 0)
$('.btnExcel').show();
},
error: function(error) {
alert(error);
}
});
}
$(文档).ready(函数(){
$('.sidebar menu.system').addClass('active');
$('.sidebar menu.system.student').addClass('active');
$(“.sidebar menu.system”).tree();
$('#streams').change(function(){
$('#branchs').html(“--Select--”);
$('#batches').html(“--Select--”);
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($(this.val()=''){
}
否则{
$.when($.streamSelection($(this.val()))。然后($.listSerm($(this.val()));
}
});
$(“#分支”).change(function(){
$('#batches').html(“--Select--”);
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($(this.val()=''){
}
否则{
$.branchSelection($(this.val());
}
});
$('#批处理')。更改(函数(){
if($(this.val()=''){
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
}
否则{
$('.divBefore').hide();
$('分割').val('');
$('.divAfter').show();
}
});
$('#除法')。更改(函数(){
$('.studList').hide();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
if($(this.val()!=“”){
$('.semesterBefore').hide();
$('#sem').val('');
$('.semesterAfter').show();
}
});
$('#sem')。更改(函数(){
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($(this.val()!=“”){
$.when($('.btnAdd').attr('href','add.php?streamId='+$('.#streams').val()+'&branchId='+$('.#branchs').val()+'&batchId='+$('.#batches').val()+'.&divisionId='+$('.#division').val()+'&semId='+$('.#sem.val())
.then($('.btnExcel').attr('href','studExcel.php?streamId='+$('#streams').val()+'&branchId='+$('#branchs').val()+'&batchId='+$('#batches').val()+'&divisionId='+$('#division').val()+'&semId='+$('.#sem.val())
。然后($('.btnAdd').show()
。然后($.studentList($('#streams').val(),$('#branchs').val(),$('#batches').val(),$('#division').val(),$('#sem').val());
}
});
});
$.streamSelection=函数(selStreamId){
$.ajax({
url:“searchBranch.php”,
数据:{
streamId:selStreamId
},
成功:功能(数据){
$('#branchs').html(数据);
},
错误:函数(错误){
警报(错误);
}
});
}
$.branchSelection=函数(selBranchHid){
$.ajax({
url:“searchBatch.php”,
数据:{
布兰奇:塞尔布兰奇,
},
成功:功能(数据){
$('#batches').html(数据);
},
错误:函数(错误){
警报(错误);
}
});
}
$.ListSerm=函数(selStreamId){
var obj={year:$(“#batches option:selected”).text();
$.ajax({
url:“searchStream.php?”+$.param(obj),
数据:{
streamId:selStreamId,
},
成功:功能(数据){
$('#sem').html(数据);
},
错误:函数(错误){
警报(错误);
}
});
}
$.studentList=函数(streamId、branchId、batchId、divisionId、semId){
$.ajax({
url:“searchStudent.php”,
数据:{
selStreamId:streamId,
塞尔布兰奇:布兰奇,
selBatchId:batchId,
selDivisionId:divisionId,
赛米德:赛米德
},
成功:功能(数据){
$('.studList').html(数据);
$('.studList').show();
如果(data.length>0)
$('.btnExcel').show();
},
错误:函数(错误){
警报(错误);
}
});
}
现在是查询字符串中的pass noting。您不能在回调函数中使用
此
,它不会保存在闭包中。创建一个局部变量
$('#streams').change(function() {
var $thisVal = $(this).val();
$('#branches').html("<option value=''>-- Select --</option>");
$('#batches').html("<option value=''>-- Select --</option>");
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($thisVal == '') {
}
else {
$.when($.streamSelection($thisVal)).then(function() {
$.listSemester($this.val());
});
}
});
另外,.then()
的参数必须是一个函数,否则将立即调用$.listSerm
,而不是在AJAX调用返回时调用
$('#streams').change(function() {
var $this = $(this);
$('#branches').html("<option value=''>-- Select --</option>");
$('#batches').html("<option value=''>-- Select --</option>");
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($this.val() == '') {
}
else {
$.when($.streamSelection($this.val())).then(function() {
$.listSemester($this.val());
});
}
});
或者,因为您只对值感兴趣,所以可以将其保存在变量中
$('#streams').change(function() {
var $thisVal = $(this).val();
$('#branches').html("<option value=''>-- Select --</option>");
$('#batches').html("<option value=''>-- Select --</option>");
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
if($thisVal == '') {
}
else {
$.when($.streamSelection($thisVal)).then(function() {
$.listSemester($this.val());
});
}
});
$('#streams')。更改(函数(){
var$thisVal=$(this.val();
$('#branchs').html(“--Select--”);
$('#batches').html(“--Select--”);
$('.divAfter').hide();
$('.divBefore').show();
$('.semesterAfter').hide();
$('.semesterBefore').show();
$('.btnAdd').hide();
$('.btnExcel').hide();
$('.studList').hide();
如果($thisVal=''){
}
否则{
$.when($.streamSelection($thisVal)).then(function(){
$.listSerm($this.val());
});
}
});
您需要对其他函数进行类似的修复。什么是您的
$.param(obj)
返回的??警报或控制台。记录obj的值,并查看是否在变量中获得正确的值放置关键字调试器代码>在ajax调用行上方,即:在`var obj={year:$(“#batches选项:selecte