使用Uploadify发送其他字段数据

时间:2011-02-17 18:28:51

标签: php jquery

我想用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'];

但它没有得到任何价值。请帮我解决这个问题,如何发送其他字段数据。感谢。

4 个答案:

答案 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',
//...