Jquery 动态AJAX URL javascript

Jquery 动态AJAX URL javascript,jquery,ajax,Jquery,Ajax,如果你有一个工作良好的AJAX,比如这个 <script type="text/javascript"> var myURL = ""; $(document).ready(function(){ $("#advancedUpload").uploadFile({ url:myURL, allowedTypes:"csv", fileName:"myfile" }); $(".cbs").on('change', function(){

如果你有一个工作良好的AJAX,比如这个

<script type="text/javascript">

var myURL = "";
$(document).ready(function(){


$("#advancedUpload").uploadFile({
    url:myURL,
    allowedTypes:"csv",
    fileName:"myfile"
});


$(".cbs").on('change', function(){
        if($('.cbs:checked').length !== 0){
            myURL = "my.php?action=upload";
            $(".cbs:checked").each(function(){
                myURL += "&" + $(this).attr('name') + "=" + $(this).val() ;
            });
        }else{
        }
            );
    });
});

var myURL=“”;
$(文档).ready(函数(){
$(“#advancedUpload”).uploadFile({
url:myURL,
允许的类型:“csv”,
文件名:“myfile”
});
$(“.cbs”).on('change',function(){
如果($('.cbs:checked')。长度!==0){
myURL=“my.php?action=upload”;
$(“.cbs:checked”).each(函数(){
myURL+=“&”+$(this.attr('name')+“=”+$(this.val();
});
}否则{
}
);
});
});

问题是每次我选中复选框时,我都想更改
var req
,而且它也起作用,我可以更改变量值。但是我的AJAX仍然是指变量的初始值。有人知道为什么吗


谢谢。

您需要重新输入jQuery上载文件以更改目标上载url。它曾在init$(“#advancedUpload”).uploadFile({…config…})上安装过一次,并且没有与其变量的链接

或者有更好的变体:


$(“#advancedUpload”).uploadFile({
url:“my.php?action=upload”,
允许的类型:“csv”,
文件名:“myfile”,
dynamicFormData:function(){
变量数据={};
如果($('.cbs:checked')。长度!==0){
$(“.cbs:checked”).each(函数(){
数据[$(this.attr('name')]=$(this.val();
});
}
返回数据;
}
});

这是你想要的吗


或者使用API方法uploadObj.update({url:updatedUrl})来实际更新url
其中uploadObj必须是您的
$(“#advancedUpload”).uploadFile({..})

您需要重新输入jQuery上载文件以更改目标上载url。它曾在init$(“#advancedUpload”).uploadFile({…config…})上安装过一次,并且没有与其变量的链接

或者有更好的变体:


$(“#advancedUpload”).uploadFile({
url:“my.php?action=upload”,
允许的类型:“csv”,
文件名:“myfile”,
dynamicFormData:function(){
变量数据={};
如果($('.cbs:checked')。长度!==0){
$(“.cbs:checked”).each(函数(){
数据[$(this.attr('name')]=$(this.val();
});
}
返回数据;
}
});

这是你想要的吗


或者使用API方法uploadObj.update({url:updatedUrl})来实际更新url 其中uploadObj必须是您的
$(“#advancedUpload”).uploadFile({..})

如果您正在使用插件,则应调用其
update()
方法来更改初始
url
选项:

$(文档)
.ready(函数(){
var Upload=$(“#advancedUpload”)
.uploadFile({
url:“”,
允许的类型:“csv”,
文件名:“myfile”
});
$(“.cbs”)
.on('change',function(){
如果($('.cbs:checked')。长度!==0){
var myURL=“my.php?action=upload”;
$(“.cbs:checked”)。每个(函数(){
myURL+=“&”+$(this.attr('name')+
“=”+$(this.val();
});
上传.更新({
url:myURL
})
}否则{
上传.更新({
网址:“
})
}
});
});
请注意,我还没有测试它,但从我在他们的文档中看到的情况来看,它应该可以工作。

如果您使用插件,您应该调用它的
update()
方法来更改初始
url
选项:

$(文档)
.ready(函数(){
var Upload=$(“#advancedUpload”)
.uploadFile({
url:“”,
允许的类型:“csv”,
文件名:“myfile”
});
$(“.cbs”)
.on('change',function(){
如果($('.cbs:checked')。长度!==0){
var myURL=“my.php?action=upload”;
$(“.cbs:checked”)。每个(函数(){
myURL+=“&”+$(this.attr('name')+
“=”+$(this.val();
});
上传.更新({
url:myURL
})
}否则{
上传.更新({
网址:“
})
}
});
});

请注意,我还没有对它进行测试,但从我在他们的文档中读到的内容来看,它应该可以工作。

大多数程序员看到您的问题时都会预感到这是怎么回事。这可能与范围有关。但大多数程序员也不喜欢猜测和假设。你能帮我解决一下你的问题吗?我们对您如何定义函数以及如何调用这些函数感兴趣。我编辑了我的帖子。看,我设置了一个变量myURL,它应该是AJAX的URL。每次我选中复选框时,URL都会更改。它改变了,它工作了。但问题是,当我调用AJAX函数时,AJAX仍然会得到初始值(“”)为空。我不知道为什么@Andreigheorghiu大多数程序员在看你的问题时都会预感到这是关于什么的。这可能与范围有关。但大多数程序员也不喜欢猜测和假设。你能帮我解决一下你的问题吗?我们对您如何定义函数以及如何调用这些函数感兴趣。我编辑了我的帖子。看,我设置了一个变量myURL,它应该是AJAX的URL。每次我选中复选框时,URL都会更改。它改变了,它工作了。但问题是,当我调用AJAX函数时,AJAX仍然会得到初始值(“”)为空。我不知道为什么@Andreigheorghiuca您能扩展您的解决方案吗?我知道您不需要在ajax请求中更改url。您可以使用dynamicFormData参数发送它。见第6段)。把零钱放在这里,尽情享受<代码>变量数据={};数据[$(this.attr('name')]=$(this.val();返回数据为您添加需要条件,无论何时需要发送。您可以扩展您的解决方案吗?我发现您不需要在ajax请求中更改url。您可以使用dynamicFormData参数发送它。见第6段)。把你的零钱放在这里