如果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 req
,而且它也有效,我可以更改变量值。但是我的AJAX仍然指的是变量的初始值。任何人都知道为什么会这样?
感谢。
答案 0 :(得分:0)
您需要重新启动jQuery上传文件才能更改目标上传网址。它在init $(“#advancedUpload”)。uploadFile({... config ...})上设置了一次,并且没有与它变量的链接。
或者有更好的变体:
$("#advancedUpload").uploadFile({
url: "my.php?action=upload",
allowedTypes:"csv",
fileName:"myfile",
dynamicFormData: function(){
var data = {};
if($('.cbs:checked').length !== 0){
$(".cbs:checked").each(function(){
data[$(this).attr('name')] = $(this).val();
});
}
return data;
}
});
这是你想要的吗?
或者真正更新网址使用API方法uploadObj.update({url: updatedUrl});
uploadObj必须是您的$("#advancedUpload").uploadFile({..});
答案 1 :(得分:0)
如果您使用的是jQueryUploadFile
插件,则应调用其update()
方法更改初始url
选项:
$(document)
.ready(function () {
var Upload = $("#advancedUpload")
.uploadFile({
url: "",
allowedTypes: "csv",
fileName: "myfile"
});
$(".cbs")
.on('change', function () {
if ($('.cbs:checked').length !== 0) {
var myURL = "my.php?action=upload";
$(".cbs:checked").each(function () {
myURL += "&" + $(this).attr('name') +
"=" + $(this).val();
});
Upload.update({
url: myURL
})
} else {
Upload.update({
url: ""
})
}
});
});
请注意我还没有对它进行测试,但是,根据我在他们的文档中所读到的,它应该可以正常工作。