整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

php手把手教你做网站(十三)Jquery无刷新提交表单

、Jquery无刷新提交表单

可以使用$.ajax或者$.post 都可以,代码也一样。

使用$("#form的ID").serialize();获取表单数据,

代码如下:

var posturl='处理提交数据的页面';
var parms=$("#form的ID").serialize();//获取form内表单数据
//返回值为json
$.post(posturl,parms, function(data) {
    //需要把返回值转为json
    var ressuobj=JSON.parse(data);
    if(ressuobj.error=='0000'){
      alert(ressuobj.msgstr);
      return false;
    }else{
      //提示错误信息,或者是错误编码
      //根据自己的需要提示
      alert(ressuobj.msgstr);
      return false;
    }
})

2、jquery弹窗

1)alert确认弹窗

在提交表单的时候,如果为空会弹出一个窗口给出提示,日常使用alert;但是效果达不到我们的要求觉得不美观,需要我们自己制作div变相实现弹窗。以上传图片,没有选择图片点击上传为例:

图1 Jquery alert弹窗确认效果图

首先要制作好遮罩层,设置宽度高度100%;z-index:9;背景色透明度以及fixed,设置隐藏。

其次制作div的弹窗,z-index要比遮罩层的大,这样就可以漂浮到遮罩层的上边,同样隐藏。

在我们平时使用alert提醒的地方,不再执行alert,而是使用jquery显示遮罩层,还有div窗口,点击确认的时候,遮罩层,div窗口隐藏。

遮罩层和div弹窗我是放到了页面底部,也可以写入js里边,没有什么区别

代码如下:

$(".zzc").show();
$(".divtc").show();
//zzc  divtc为遮罩层,div的class
$(".confirm").click(function(){ 
//confirm 为确认按钮的class
$(".zzc").hide();
$(".divtc").hide();
})

我们可以对该提醒的方法封装,以后只要传入提示的信息,而不必每次都要写show hide。

2)confirm确认弹窗

图2 jquery 删除确认效果图

(1)如果是文章后边的删除,也就是删除单条文章,<a class='delconfi' datalink='删除文章的URL'>删除</a>

不能写href,通过jquery 获取data-link在js内跳转

$(".delconfi").click(function(){
 var datalink=$(this).attr('datalink');
$(".zzc").show();
$(".divtc").show();
//zzc  divtc为遮罩层,div的class
$(".quxiao").click(function(){ 
//quxiao 为取消按钮的class
$(".zzc").hide();
$(".divtc").hide();
});
$(".confirm").click(function(){ 
//confirm 为确认按钮的class
window.location.href=datalink;
//跳转到其他页面 是否隐藏遮罩层已经没有关系
});
  
})

(2)文章列表多选的删除

文章放到form内,删除按钮只是一个简单的button按钮,不是submit,form加上id=myform;

当点击确认按钮以后,将上述代码的跳转,换成$("#myform").submit();

$(".confirm").click(function(){ 
    $("#myform").submit();
});

3、添加文章会用到富文本编辑器编辑文章内容

1)如果编辑器集成了php上传图片,要检查下是不是验证了安全性,防止图片木马;

2)如果默认上传图片在文本编辑器所在文件夹,我们要做一下修改,存放图片的文件夹放到外边,也就是不要和编辑器在一个文件夹;

3)我们修改编辑器原来的文件夹名称,如果为多个客户开发,可以为每个客户设置不同的文件夹名称;

4、mysql主表附表

当表中数据过多的时候,分页是比较慢的,所以做之前我们要做好规划。

thinkphp6 join 关联查询:

数据很多,开始建表,我就可以创建2个表(主表和附表)主表存放主要的ID,名称,存放得越少越好,附表存放其他的比如ID,内容,时间,分类,unionid等,2个表的ID不一定相同的,需要unionid字段关联。读取的时候使用join关联。

如果使用了表前缀,这里需要获取,Config实际上就是读取config文件夹下的文件,例如:读取数据库Config("database"),读取session配置就是Config("session"),Config("文件名称"),打印出来或者我们打开database.php可以看到在prefix最后一层。这里我是一层一层地选出来的,可能有别的方法直接读取,我没去查看。

//dump(config("database"));
$prefix=Config("database.connections.mysql.prefix");
Db::name('web_zhubiao')
  ->alias('a')
  ->join($prefix."web_fubiao b",'a.id=b.unionid')
  ->field('a.id.b.name')
  ->后边就是条件
//字段都要加上代表表的a b例如:a.id>11

经过测试:表有多个字段读取2个和表中就有这2个字段读取,执行效率是不同的越少读取的越快。

外媒报道,jQuery近日发布安全更新,修复了一个名为原型污染(prototype pollution)的罕见安全漏洞,该漏洞允许黑客通过某种手段修改JavaScript对象的prototype

图片来源于创客贴

当前74%的网站使用的是jQuery JavaScript库,且其中大多数网站仍使用受该漏洞影响的库1.x和2.x版本。黑客可将其控制的prototype注入对象,触发JavaScript异常发动拒绝服务攻击,或篡改应用程序源代码注入黑客的代码路径,最终导致应用程序崩溃或被接管

据悉,JavaScript对象可包含基于预定义结构的多个值 (var car={type:"Fiat", model:"500", color:"white"}),且prototype定义了JavaScript对象的默认结构和默认值,因此即使没有为对象赋值,应用程序也不会崩溃。

图片来源于pixabay

值得庆幸的是,大部分网站主要将jQuery用于操作动画菜单或创建弹窗,且每段攻击代码均需根据目标进行微调,因此该漏洞并不能被大规模利用。

截至目前,研究人员已发布该漏洞的概念验证PoC代码(https://github.com/jquery/jquery/pull/4333),其中包含攻击原理和规避方法。专家建议用户升级至最新版本jQuery3.4.0以保护网站和应用程序。

图片来源于pixabay

来源:http://u6.gg/swrD7,“ISEC安全e站”独家编译,转载请注明出处及本文链接。

注本头条号,专注做前端

今天要介绍的是基于vueJS 的弹窗组件 ——messagebox.js ,弹窗插件很多基于jquery的更多,它唯一的不同之处在于是基于vueJS做的,可以用到vue的项目中,支持回调

//