anlinmb提供了更方便的ajax函数:anlin.ajax({参数对象}),它可以防止重复请求以及设置超时时间,并且可以更方便的支持表单提交,文件上传以及指定文件类型

参数对象表
参数 说明
url: 请求的目标url,它不可以跨域请求
h: 当前按钮对象(防止请求中重复点击),默认可以填写当前对象this
dataType: 设置返回的数据类型,如:json,html,text,script
formId: 使用post请求,form标签的id(此id是唯一值,一个页面多个表单不能使用相同id)
time: 设置超时时间(毫秒),不设置 默认3000=30秒
f: 请求成功后的回调函数function(a){...}
file_load: 文件上传中监听运行回调函数function(e){...}
error: 请求出错时运行函数function(jqXHR,textStatus,errorThrown){...}
obj:{} 其它对象,可移植jquery的ajax对象,例:
obj:{
beforeSend: function(xhr) {xhr.overrideMimeType("text/txt;charset=gb2312"); }
}

普通的GET请求数据

<div id="anlin-ajax">请求成功后此区域会显示数据</div>
<button type="button">点我发送GET请求</button>
<script>
  $("button").click(function(){
 anlin.ajax({
url:'/xxx.php?w=111',
dataType:'html',
time:30000,
f:function(aa){
$('#anlin-ajax').text(aa);//成功获取数据
},
error:function(){alert('加载出错请重试');}
});
  });
</script>
 

post表单与文件上传

我们提供了一个文件选择器函数:anlin.show(参数1,参数2,{参数3对象})
使用它时您必须确保form内拥有id=file的文件选择器

参数1: form表单的唯一id(他不是选择器不要添加#)
参数2: 将已选择的文件预览内容添加到指定元素内(选择器)
参数3对象: {
type:['jpg','png'],//指定允许的文件类型(数组形式),如: ['jpg','png'...],不设置则没有文件类型限制
filen:1,//限制文件数量,不设置则没有限制
h:this//它有两个参数this代表文件达到指定数量时当前添加文件按钮自动消失,不设置或为其它参数时按钮始终存在
}

完整示例:

<style>
button{margin-left:10px;margin-top:5px;width:100px;height:35px;line-height:35px;text-align:center;}
</style>
<form method="post" enctype="multipart/form-data" id="form-id">
<!--表单数据-->
<input name="name" value="wodeid">
<!--设置一个隐藏的文件选择框并添加id=file 此id必须为file-->
<input id="file" type="file" name="file[]" style="display:none;">
<!--选择文件,如果您不需要上传文件只需将以下代码删除即可-->
<div class="fimg">
<div id="imgid"></div>
<!--设置anlin.show参数3为限制上传2个文件-->
<li onclick="anlin.show('form-id','#imgid',{filen:2,h:this});"><a style="font-size:300%;">+</a></li>
</div>
<!--提交上传-->
<button style="" type="button" onclick="anlin.ajax({
url:'/xxx.php',
h:this,
formId:'form-id',
dataType:'html',
time:50000,
f:function(aa){alert(aa);},
error:function(){alert('加载出错请重试');}
});">提交</button>
</form>
<br>
<p>下面将实现一个更棒的文件上传效果,提交后显示loading和文件上传进度</p>
<br>
<form method="post" enctype="multipart/form-data" id="form-id2">
<!--表单数据-->
<input name="name" value="维森莫">
<!--设置一个隐藏的文件选择框并添加id=file 此id必须为file-->
<input id="file" type="file" name="file[]" style="display:none;">
<!--选择文件,如果您不需要上传文件只需将以下代码删除即可-->
<div class="fimg">
<div id="imgid2"></div>
<li onclick="anlin.show('form-id2','#imgid2');"><a style="font-size:300%;">+</a></li>
</div>
<!--提交上传-->
<button id="bttt" type="button">提交</button>
</form>

<script>
  $("#bttt").click(function(){
anlin.fs('<center><img src="https://loading.io/mod/spinner/dual-ball/index.svg"><div id="lofile">加载中...</div></center>');
anlin.ajax({
url:'/xxx.php',
h:this,
formId:'form-id2',
dataType:'html',
time:50000,
file_load:function (e) {
var progressRate = (e.loaded / e.total) * 100 + '%';
              
$('#lofile').html('文件上传中('+progressRate+')');
            },
f:function(aa){anlin.fs(false);alert(aa);},
error:function(){
anlin.fs(false);
alert('加载出错请重试');}
});

});
</script>
 

文件类型与文件预览样式设置,下面例子中限制了只允许选择zip和rar后缀的文件,并通过CSS设置预览图标或文本

CSS样式设置自定义后缀文件预览图标方法:
.anlin-file-文件后缀名::before {
content:' ';
display:block;
    width: 80px;
    height: 80px;
    background:url(/xxx.png);//图标地址
    background-size:cover;
}
<style>
button{margin-left:10px;margin-top:5px;width:100px;height:35px;text-align:center;}
/**CSS设置非图片文件预览图标或文本**/
.anlin-file-zip::before {
/**设置zip图标**/
content:' ';
display:block;
    width: 70px;
    height: 70px;
    background:url(https://cdn0.iconfinder.com/data/icons/leto-file-formats/64/zip_compressed_file_format-128.png);
    background-size:cover;
font-size:110%;
}
.anlin-file-rar::before {
content:"rar压缩包";
font-size:110%;
}
</style>
<p>我们现在设置了zip文件的图标,选择zip文件看看效果</p>
<form method="post" enctype="multipart/form-data" id="form-id">
<input id="file" type="file" name="file[]" style="display:none;">
<div class="fimg">
<div id="imgid"></div>
<li onclick="anlin.show('form-id','#imgid',{type:['zip','rar']});"><a style="font-size:300%;">+</a></li>
</div>
<!--提交上传-->
<button style="" type="button" onclick="anlin.ajax({
url:'/xxx.php',
h:this,
formId:'form-id',
dataType:'html',
time:50000,
f:function(aa){alert(aa);},
error:function(){alert('加载出错请重试');}
});">提交</button>
</form>
 

php后台接收上传文件示例:

$file=@$_FILES['file'];
$co=@count($file['name']);
for($i=0;$i<=$co-1;$i++){
if($file['name'][$i]!=''&&$file['error'][$i]==0){
echo $file['name'][$i];
echo "\n";
move_uploaded_file($file["tmp_name"][$i], "upload/" . $file["name"][$i]);
echo "文件存储在: " . "upload/" . $file["name"][$i];
}
}

终止请求

anlin.ajax每次请求都会返回一串唯一标识,可以通过anlin.xajax();来终止请求,但最终结果可能只是跳过成功后的函数运行

<div id="anlin-ajax">请求成功后此区域会显示数据</div>
<button type="button">点我请求数据,立即终止请求并运行错误</button>
<script>
  $("button").click(function(){
var aq=anlin.ajax({
url:'/xxx.php?w=111',
dataType:'html',
time:30000,
f:function(aa){
$('#anlin-ajax').text(aa);//成功获取数据
},
error:function(){$('#anlin-ajax').text('请求出错');}
});
anlin.xajax(aq);//终止请求
  });
</script>
 

如果你添加 .pre-scrollable 类, pre 元素最大的高度 max-height 为 350px ,并生成一个 Y 轴的滚动条:

在 pre 元素中的文本
	宽度的显示与文本的宽度一样,
	保留了  空  格 和

	换行。
	
	

QQ群

友情链接: 百度

鄂ICP备2021014629号-3

2022-11-17更新:已修复图片预览gif动图显示