【问题标题】:Why am I getting "undefined" passed to the db? jquery php plupload为什么我将“未定义”传递给数据库? jquery php 插件
【发布时间】:2013-12-03 08:55:02
【问题描述】:

我在将某些内容传递到我的数据库时没有遇到问题,因此上面的“可能已经回答”警报和相关链接没有回答我的问题(无论如何感谢您提供帮助)。我的问题是 jquery 变量。

为什么当我将$('input[name="ageLimit"]:checked', '#myForm').val() 传递给警报时,变量会提取正确的信息,但是当我将它传递给 plupload 函数中的 url 时却没有,我最终在我的数据库中得到undefined。为什么会发生这种情况?权限? jQuery冲突?

<script type="text/javascript">
// Convert divs to queue widgets when the DOM is ready
$(document).ready(function(){ 
   $('#myForm input').on('click', function() {
   alert($('input[name="ageLimit"]:checked', '#myForm').val()); 
   });

});

$(function() {
$("#uploader").plupload({
    // General settings
    runtimes : 'flash,html5,browserplus,silverlight,gears,html4',       
    url : 'upload.php?aud=' + $('input[name="ageLimit"]:checked', '#myForm').val(),
    max_file_size : '1000mb',
    max_file_count: 20, // user can add no more then 20 files at a time
    chunk_size : '1mb',
    rename: true,
    multiple_queues : true,
     //multipart_params : {
          //  aud : $('input[name="ageLimit"]').val()
    //},

    // Resize images on clientside if we can
    //resize : {width : 320, height : 240, quality : 90},

    // Rename files by clicking on their titles
    rename: true,

    // Sort files
    sortable: true,

    // Specify what files to browse for
    filters : [
        {title : "Image files", extensions : "jpg,gif,png"},
        {title : "Zip files", extensions : "zip,avi"}
    ],

    // Flash settings
    flash_swf_url : 'plupload/js/plupload.flash.swf',

    // Silverlight settings
    silverlight_xap_url : 'plupload/js/plupload.silverlight.xap'
});

// Client side form validation
$('form').submit(function(e) {
    var uploader = $('#uploader').plupload('getUploader');

    // Files in queue upload them first
    if (uploader.files.length > 0) {
        // When all files are uploaded submit form
        uploader.bind('StateChanged', function() {
            if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
                $('form')[0].submit();
            }
        });

         //uploader.bind('BeforeUpload', function(up) {
             // up.settings.multipart_params.aud = $('input[name="ageLimit"]').val();
       // });    
        uploader.start();
    } else
        alert('You must at least upload one file.');

    return false;
});


});
</script>

这里是php代码

//check for audience
    $aud = (!empty($_GET['aud'])) ? trim($_GET['aud']): "";

【问题讨论】:

  • 我怀疑你不能同时传递 URL 参数 GET 数据和多部分 POST 数据——否则你在服务器端检索错误。也许你正试图在你的 PHP 中检索一个 POST 变量,或者也许 plupload 正在剥离你的 URL 变量。
  • 如何处理 GET 参数?请出示您的 PHP 代码。
  • 多部分数据已被注释掉以便调试。
  • //检查观众 $aud = (!empty($_GET['aud'])) ?修剪($_GET['aud']): "";
  • (isset($_GET['aud']) &amp;&amp; !empty($_GET['aud']))

标签: php jquery plupload


【解决方案1】:

我猜这是因为在上传程序的初始化中评估 url 选项时,还没有选中单选按钮。

而不是

url : 'upload.php?aud=' + $('input[name="ageLimit"]:checked', '#myForm').val(),

url : 'upload.php',

然后在 plupload 调用之后和 $('form').submit( 调用之前添加:

var uploader = $('#uploader').plupload('getUploader');

uploader.bind('BeforeUpload',function(upldr,file){
    upldr.settings.url = 'upload.php?aud=' + $('input[name="ageLimit"]:checked', '#myForm').val();
    // here some runtimes might need a upldr.refresh(); (Though I'm not sure, I guess I remember Flash would.)
    }
);

希望这会有所帮助

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多