我想用uploadify发送一些额外的(表单)字段数据。为此,我使用的是scriptData。例如,以下代码正确发送名称和位置字段的静态值。
<script type="text/javascript">
$(document).ready(function() {
$("#fileUpload").fileUpload({
'uploader': 'uploadify/uploader.swf',
'cancelImg': 'uploadify/cancel.png',
'script': 'uploadify/upload.php',
'folder': 'files',
'multi': false,
'displayData': 'speed',
'scriptData': {'name':'JohnDoe', 'location':'Australia'}
});
});
</script>
但是,因为我有输入字段名称和位置,所以我想发送动态值。为此,我发送ScriptData中的值如下
'scriptData' : {'name' : $('#name').val(), 'location' : $('#location').val()}
在upload.php上,我正在尝试
$name = $_GET['name'];
$location = $_GET['location'];
但它没有得到任何价值。请帮我解决这个问题,如何发送其他字段数据。感谢。
答案 0 :(得分:2)
因为在加载DOM时调用val()
,而不是在用户键入位置和名称时调用。{您应该使用其中一个事件来设置新值。手册不清楚,我认为它必须是onSelectOnce
事件:
<script type="text/javascript">
$(document).ready(function() {
$("#fileUpload").fileUpload({
'uploader': 'uploadify/uploader.swf',
'cancelImg': 'uploadify/cancel.png',
'script': 'uploadify/upload.php',
'folder': 'files',
'multi': false,
'displayData': 'speed',
'scriptData': {'name':'', 'location':''},
'onSelectOnce' : function(event,data) {
$("#fileUpload").uploadifySettings('scriptData', {'name' : $('#name').val(), 'location' : $('#location').val()});
}
});
});
</script>
答案 1 :(得分:0)
您是否尝试在JSON编码的值周围加上引号?即用$('#location').val()
替换"\'"+$('#location').val()+"\'"
。
答案 2 :(得分:0)
这里是uploadify 3.1的代码
$(function() {
$('#file_upload').uploadify({
'formData' : {'id' : ''},
'debug': false,
'buttonClass' : 'g-button g-button-blue',
'swf' : '../uploadify/uploadify.swf',
'uploader' : 'ajax/my_upload_file.php',
'onUploadStart' : function(file) {
$('#file_upload').uploadify('settings', 'formData', {'id' : $('#id').val() });
}
});
});
我需要使用它,因为我用json调用我的表单数据然后我必须更新uploadify id post参数
答案 3 :(得分:-1)
您需要指定发布变量的方法:
在uploadify配置中:
//...
'method': 'POST',
//...