上传时获取唯一号码
Getting a unique number at upload
我有一个上传脚本,它在用户点击提交时运行,看起来像这样:
<script type="text/javascript">
//<![CDATA[
$(function() {
// Initialiseer uploadifive
$('#file_upload').uploadifive({
'auto' : false,
'checkScript' : '/uploadifive/Sample/check-exists.php',
'onFallback' : function () {
window.location = '/home.php';
},
'method' : 'post',
'queueID' : 'queue',
'uploadScript' : '/upload/uploadifive.php',
'removeCompleted' : true,
'onUploadComplete' : function (file, data) {
console.log(data);
}
});
// Hang een click-event aan de knop
$('#subby').on('click', function () {
// Werk formData van uploadifive bij met de betreffende waarden
$('#file_upload').data('uploadifive').settings.formData = {
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>',
'projectnr' : $('input[name=projectnr]').val(),
'gebruiker' : $('input[name=gebruiker]').val(),
'gebruikerid' : $('input[name=userId]').val(),
'mapId' : $( "#mapId option:selected" ).val(), // moet dit niet val() zijn???
'uploadbash' : '<?php echo $uploadbash; ?>',
'upload_reden' : $( "#upload_reden option:selected" ).val(),
'todo' : $("input[name=todo]:checked").val(),
'lid' : $('input[name="lid[]"]:checked').serialize()
};
// Voer de upload uit
$('#file_upload').uploadifive('upload');
});
});
//]]>
</script>
现在我想修改上面的内容并构建以下内容:
当脚本运行时,它必须在后台运行页面randomnumber.php
,并将收到的数字作为"uploadbash"发送回:"
这可能吗?我该怎么做?
它不起作用,我现在这样做:
<script type="text/javascript">
//<![CDATA[
$(function() {
// Initialiseer uploadifive
$('#file_upload').uploadifive({
'auto' : false,
'onFallback' : function () {
window.location = '/home.php';
},
'method' : 'post',
'queueID' : 'queue',
'uploadScript' : '/upload/uploadifive.php',
'removeCompleted' : true,
'onUploadComplete' : function (file, data) {
console.log(data);
}
});
// Hang een click-event aan de knop
$('#subby').on('click', function () {
// Werk formData van uploadifive bij met de betreffende waarden
$('#file_upload').data('uploadifive').settings.formData = {
'checkScript' :
$.ajax({
url: '/upload/number.php',
type: 'POST',
data: {search: "beeeeeeeh"}
}).done(function () {
alert("test");
$("#result").html(data);
}),
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>',
'projectnr' : $('input[name=projectnr]').val(),
'gebruiker' : $('input[name=gebruiker]').val(),
'gebruikerid' : $('input[name=userId]').val(),
'mapId' : $( "#mapId option:selected" ).val(), // moet dit niet val() zijn???
'uploadbash' : '<?php echo $uploadbash; ?>',
'upload_reden' : $( "#upload_reden option:selected" ).val(),
'todo' : $("input[name=todo]:checked").val(),
'lid' : $('input[name="lid[]"]:checked').serialize(),
'number' : $("#result").html(data)
};
// Voer de upload uit
$('#file_upload').uploadifive('upload');
});
});
//]]>
</script>
所以我添加了:
'checkScript' :
$.ajax({
url: '/upload/number.php',
type: 'POST',
data: {generateNumber: "yes"}
}).done(function () {
alert("test");
$("#result").html(data);
}),
和:
'number' : $("#result").html(data)
但当我点击"上传"时,我在firebug中得到了这个:
ReferenceError:未定义数据$("#result").html(数据);}),
警报"测试"确实弹出。
您的问题是这个
{'checkScript' :
$.ajax({
url: '/upload/number.php',
type: 'POST',
data: {search: "beeeeeeeh"}
}).done(function () {})
不会为checkScript指定您期望的内容。它是一个异步调用,因此您必须等待它返回(在done()或success()中),然后才能使用它将提供的数据。
// Hang een click-event aan de knop
$('#subby').on('click', function () {
// Werk formData van uploadifive bij met de betreffende waarden
//when we click, do a call to the backend...
$.ajax({
url: '/upload/number.php',
type: 'POST',
data: {generateNumber: "yes"}
}).success(function(numberPHPResult){ //***
//and when it comes back, populate the form
$('#file_upload').data('uploadifive').settings.formData = {
'checkScript': numberPHPResult, //***
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>',
'projectnr' : $('input[name=projectnr]').val(),
'gebruiker' : $('input[name=gebruiker]').val(),
'gebruikerid' : $('input[name=userId]').val(),
'mapId' : $( "#mapId option:selected" ).val(), // moet dit niet val() zijn???
'uploadbash' : '<?php echo $uploadbash; ?>',
'upload_reden' : $( "#upload_reden option:selected" ).val(),
'todo' : $("input[name=todo]:checked").val(),
'lid' : $('input[name="lid[]"]:checked').serialize()
};
// Voer de upload uit
$('#file_upload').uploadifive('upload');
})
});
此外,如果你想提供更多信息,你应该编辑你的问题,而不是发布答案。
最后,如果你想更深入地学习Javascript,Douglas Crockford就是你的选择
http://javascript.crockford.com/网上的东西http://www.amazon.co.uk/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742//书籍https://www.youtube.com/playlist?list=PL7664379246A246CB//视频
我认为您必须传递作为done()
方法的参数返回的对象。所以done(data)
尝试使用:
$.ajax({
url: '/upload/number.php',
type: 'POST',
data: {generateNumber: "yes"}
}).done(function(data)
{
console.log(data);
alert("test");
$("#result").html(data.responseText); //If I'm not wrong data is a XMLHttpRequest object
});
甚至更好:
$.ajax({
url: '/upload/number.php',
type: 'POST',
data: {generateNumber: "yes"},
success: function(data)
{
console.log(data);
alert("test");
$("#result").html(data.responseText); //If I'm not wrong data is a XMLHttpRequest object
},
error: function(xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(thrownError);
});
相关文章:
- 带有加号的电话号码验证(可选)
- 使用onkeyup JS事件检查输入的值是否唯一
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- Lodash映射并返回唯一
- 在数据库中循环值时,为输入框获取唯一值
- 如何从数组中查找唯一对象
- 如何在java脚本中验证手机号码
- 正在为循环创建唯一id
- 获取唯一值并使用javascript计算金额总和
- JavaScript:从对象数组中获取唯一值及其计数
- 正则表达式,用于在 JavaScript 中为电话号码添加短划线
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- ng重复中的ng模型-初始化唯一作用域属性
- Javascript/Ajax:通过点击按钮检查有效的电子邮件和电话号码
- 生成唯一的ids js
- 如何将页面上的所有电话号码更改为可点击链接,不包括特定类别的元素
- 创建具有2个唯一数字的Javascript数组
- 对中的函数调用进行排序是回调的唯一方法
- 上传时获取唯一号码
- 我怎样才能在一个用逗号、换行符或空格分隔的文本区域中计算唯一的电话号码数?