我需要能够使用Uploadify在一个页面(可能是数百个)上拥有多个上传输入。上传PHP文件将根据用于提交它的输入按钮的ID重命名上传的文件,因此需要该ID。
由于我将在一个页面上拥有数百个上传按钮,因此我想创建一个通用实例化,因此我使用表单类而不是表单ID来完成此操作。但是,当单击其中一个输入时,我想将该输入的ID作为scriptData传递给PHP。这不起作用; PHP说'formId'未定义。
有没有一种好方法可以获取正在使用的表单输入的ID属性,并将其传递给上传PHP?或者是否有完全不同的更好的方法来实现这一目标?提前谢谢!!
<script type="text/javascript">
$(document).ready(function() {
$('.uploady').uploadify({
'uploader' : '/uploadify/uploadify.swf',
'script' : '/uploadify/uploadify.php',
'cancelImg' : '/uploadify/cancel.png',
'folder' : '/uploadify',
'auto' : true,
// LINE IN QUESTION
'scriptData' : {'formId':$(this).attr('id')}
});
});
</script>
</head>
输入看起来像这样:
<input id="file_upload1" class="uploady" name="file_upload" type="file" />
<input id="file_upload2" class="uploady" name="file_upload" type="file" />
<input id="file_upload3" class="uploady" name="file_upload" type="file" />
答案 0 :(得分:6)
//编辑这是工作代码
$('.uploady').uploadify({
'uploader' : '/uploadify/uploadify.swf',
'script' : '/uploadify/uploadify.php',
'cancelImg' : '/uploadify/cancel.png',
'folder' : '/uploadify',
'auto' : true,
// ANSWER
'onSelect' : function(event,ID,fileObj) {
var elem_id = $(event.target).attr("id"); //here you get the id of the object.
$("#"+elem_id).uploadifySettings('scriptData',{'formID':elem_id})
},
});
现在您的formID将正确发送
答案 1 :(得分:0)
如果您知道您希望每次都发送它(或者不介意不必要地发送它),您可以对Uploadify.js
文件进行简单的编辑。
替换此if子句(在Uploadify v2.1.4中从第74行开始):
if (settings.scriptData) {
var scriptDataString = '';
for (var name in settings.scriptData) {
scriptDataString += '&' + name + '=' + settings.scriptData[name];
}
data.scriptData = escape(scriptDataString.substr(1));
}
以下内容:
if (settings.scriptData) {
var scriptDataString = '';
for (var name in settings.scriptData) {
scriptDataString += '&' + name + '=' + settings.scriptData[name];
}
}
scriptDataString += '&elemID=' + settings.id;
data.scriptData = escape(scriptDataString.substr(1));
在后端,可以像scriptData
的任何其他元素一样访问元素ID:
$thisInputID = $_POST["elemID"];
如果您想使用其他名称访问ID(此处为elemID
),只需在上面的scriptDataString += '&elemID=' + settings.id
行中进行更改即可。