gpt4 book ai didi

jquery - 将数据动态添加到属性/选项

转载 作者:行者123 更新时间:2023-12-04 13:32:23 29 4
gpt4 key购买 nike

我不确定“属性(property)”或“选项”是否是正确的术语,但这是我需要弄清楚的。
鉴于以下情况:

' $.fileup({
url: '/file/upload',
inputID: 'upload-6',
queueID: 'upload-6-queue',
files: [
{
id: 1,
name: 'Cat.jpg', // required
size: '254361', // required
previewUrl: 'img/preview/cat.jpg',
downloadUrl: 'img/cat.jpg',
customParam: '123'
},
{
id: 2,
name: 'Flower.jpg', // required
size: '924160', // required
previewUrl: 'img/preview/flower.jpg',
downloadUrl: 'img/flower.jpg',
customParam: '456'
},
{
name: 'FileUp.zip', // required
size: '23040', // required
downloadUrl: 'https://github.com/shabuninil/fileup/archive/master.zip'
}
]
}); '
我如何将所需的信息添加到“文件:”,来自 ajax 调用,因为数据库和文件列表交互需要 PHP。我知道如何做 PHP 方面,但不知道如何填充"file"属性。我可以添加“文件:函数(php 数据返回)”,但这不会填充其余的属性(名称、大小...)。
谢谢,
戴夫
这是更新,希望得到答复。我尝试了几种方法,并接近,但仍然无法正常工作。这是我现在拥有的代码:
 $.fileup({
url: 'UpIt.php',
inputID: 'upload-2',
dropzoneID: 'upload-2-dropzone',
queueID: 'upload-2-queue',
lang: 'en',
onSelect: function(file) {
$('#multiple button').show();
},
onRemove: function(file, total, file_number) {
alert(file_number);
if (file === '*' || total === 1) {
$('#multiple button').hide();
}
},
onSuccess: function(response, file_number, file) {

Snarl.addNotification({
title: 'Upload success',
text: file.name,
icon: '<i class="fa fa-check"></i>'
});
},
onError: function(event, file, file_number) {

Snarl.addNotification({
title: 'Upload error',
text: file.name,
icon: '<i class="fa fa-times"></i>'
});
},
files: LoadFiles()

});

function LoadFiles()
{
$.ajax({
url: 'LoadFiles.php',
type: "POST",
dataType: 'json',

success: function (FileData) {

return FileData;
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}

首先是创建一个变量,并对数组进行硬编码,然后在"file"属性中使用它,效果很好。但是,如果我将变量分配给 LoadFiles 函数,它不会坚持,由于某种原因,脚本运行两次(也许我需要使用就绪),因此变量被破坏,并变为未声明。所以我的下一个方法是使用上述方法,从函数调用中直接分配属性"file",但仍然无法正常工作。我什至将 Ajax 调用放在属性中,并将其声明为函数“file: function() {ajax stuff},但这破坏了整个脚本。
我错过了什么?
谢谢,
戴夫

最佳答案

如果您进行 ajax 调用,您不会立即得到响应,因此您没有从 LoadFiles 返回的值。功能。
您需要做的是扭转流程,即而不是$.fileupLoadFiles 中调用 ajax , 进行 ajax 调用 $.fileup当响应到达时:

//this function will initialize the fileup, when it is called with the list of files later
function initFileup(fileData) {
$.fileup({
url: 'UpIt.php',
inputID: 'upload-2',
dropzoneID: 'upload-2-dropzone',
queueID: 'upload-2-queue',
lang: 'en',
onSelect: function (file) {
$('#multiple button').show();
},
onRemove: function (file, total, file_number) {
alert(file_number);
if (file === '*' || total === 1) {
$('#multiple button').hide();
}
},
onSuccess: function (response, file_number, file) {

Snarl.addNotification({
title: 'Upload success',
text: file.name,
icon: '<i class="fa fa-check"></i>'
});
},
onError: function (event, file, file_number) {

Snarl.addNotification({
title: 'Upload error',
text: file.name,
icon: '<i class="fa fa-times"></i>'
});
},
files: fileData
});
}

//this ajax call is started immediatelly and upon receiving the response data
//it will call the function initFileup to initialize the fileup
$.ajax({
url: 'LoadFiles.php',
type: "POST",
dataType: 'json',

success: function (fileData) {
initFileup(fileData);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});

关于jquery - 将数据动态添加到属性/选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64248358/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com