我在将某些内容传递到数据库中时没有遇到问题,因此上面的"可能已被回答"警报和相关链接无法回答我的问题(感谢您的帮助)。我的问题是jquery变量。
为什么当我将$('input[name="ageLimit"]:checked', '#myForm').val()
传递给alert时,变量会提取正确的信息,但当我将其传递给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']): "";
我想这是因为在上传程序的init中评估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.)
}
);
希望这将有助于