全局变量无法运作

时间:2011-12-07 06:30:06

标签: javascript

我正在使用swfupload插件。当我尝试上传图像时,我想传递两个参数,但参数没有被传递。

                 var id1='g';
                var opt1='g';
       function getValues()
                {
                    id1 = $("#id").val();
                    opt1=$("#opt").val();
                    return id1.concat(opt1);
                }

             $(document).ready(function(){

             alert(getValues()); // Here coming

            $('#swfupload-control').swfupload({
                upload_url: "upload-file.php?para=getValues()",//Here not coming
                file_post_name: 'uploadfile',
                file_size_limit : "8024",
                file_types : "*.jpg;*.png;*.gif",
                file_types_description : "Image files",
                file_upload_limit : 10,
                flash_url : "js/swfupload/swfupload.swf",
                button_image_url : 'js/swfupload/wdp_buttons_upload_114x29.png',
                button_width : 114,
                button_height : 29,
                button_placeholder : $('#button')[0],
                debug: false
            })
            .bind('fileQueued', function(event, file){
                var listitem='<li id="'+file.id+'" >'+
                    'File: <em>'+file.name+'</em> ('+Math.round(file.size/1024)+' KB)         <span class="progressvalue" ></span>'+
                    '<div class="progressbar" ><div class="progress" ></div></div>'+
                    '<p class="status" >Pending</p>'+
                    '<span class="cancel" >&nbsp;</span>'+
                    '</li>';
                $('#log').append(listitem);
                $('li#'+file.id+' .cancel').bind('click', function(){
                    var swfu = $.swfupload.getInstance('#swfupload-control');
                    swfu.cancelUpload(file.id);
                    $('li#'+file.id).slideUp('fast');
                });
                // start the upload since it's queued
                $(this).swfupload('startUpload');
            })
            .bind('fileQueueError', function(event, file, errorCode, message){
                alert('Size of the file '+file.name+' is greater than limit');
            })
            .bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
                $('#queuestatus').text('Files Selected: '+numFilesSelected+' / Queued Files: '+numFilesQueued);
            })
            .bind('uploadStart', function(event, file){
                $('#log li#'+file.id).find('p.status').text('Uploading...');
                $('#log li#'+file.id).find('span.progressvalue').text('0%');
                $('#log li#'+file.id).find('span.cancel').hide();

            })
            .bind('uploadProgress', function(event, file, bytesLoaded){
                //Show Progress
                var percentage=Math.round((bytesLoaded/file.size)*100);
                $('#log li#'+file.id).find('div.progress').css('width', percentage+'%');
                $('#log li#'+file.id).find('span.progressvalue').text(percentage+'%');
            })
            .bind('uploadSuccess', function(event, file, serverData){
                var item=$('#log li#'+file.id);
                item.find('div.progress').css('width', '100%');
                item.find('span.progressvalue').text('100%');
                var pathtofile='<a href="uploads/'+file.name+'" target="_blank" >view &raquo;</a>';
                item.addClass('success').find('p.status').html('Done!!! | '+pathtofile);
            })
            .bind('uploadComplete', function(event, file){
                // upload has completed, try the next one in the queue

                $(this).swfupload('startUpload');

            })
        });
 });
    </script>

2 个答案:

答案 0 :(得分:5)

你有一个字符串函数调用。你需要打破字符串并将函数的结果连接到字符串上。

upload_url: "upload-file.php?para=getValues()"

变为:

upload_url: "upload-file.php?para=" + getValues()

答案 1 :(得分:2)

具有以下代码的行不会调用函数getValues(),因为它只是一个字符串。

upload_url: "upload-file.php?para=getValues()",

我假设您要调用该函数,而不是在网址中输入“getValues()”,对吗?