1,实现效果截图

2,A.php上传CSV文件表单

  2-1:html结构使用jqeury.form.min.js表单框架异步提交

 <div class="uploadFile border_bg">
<form action="" method="post" id="formToUpdate">
<div class="form-group">
<label ><strong>Import from csv</strong></label>
<input type="file" name="uploadCSV" id="upCsv">
<input id="ajaxSubmit" type="button" value="upload CSV" class="btn">
</div> </form> </div>

  2-2:JavaScript,在上传前判断是否是csv文件,否:禁止提交,提交完成后,在当前页面显示响应数据

 <script type="text/javascript" language="javascript">

     jQuery(function(){
jQuery("#ajaxSubmit").on("click",function(e){
//console.log(jQuery(this));
var file=jQuery('#upCsv').val();
var fileArr=file.split('.');
if((fileArr[fileArr.length-1]) !== 'csv'){
alert("please upload CSV file!")
preventDefault(e);
}else{
jQuery("#formToUpdate").ajaxSubmit({
type:'post',
url:'index.php?option=com_gnverification&view=doajax&layout=show',
success:function(data){
document.write(data);
},
error:function(XmlHttpRequest,textStatus,errorThrown){
console.log(XmlHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
});
} });
});
function preventDefault(e){
e=e || window.event;
if(document.all){
e.returnValue=false;
}else{
e.preventDefault();
}
} </script>

3,B.php:接收csv文件,读取其中的数据,存入数组

  3-1:html与php配合实现数据在表单显示

 <?php

 defined('_JEXEC') or die;

     //joomla 获取CSV文件
$cvs=JRequest::getVar('uploadCSV','','files');
//读取CSV文件数据,并存入数组
function csv_get_lines($csvfile, $lines, $offset = 0) {
if(!$fp = fopen($csvfile, 'r')) {
return false;
}
$i = $j = 0;
while (false !== ($line = fgets($fp))) {
if($i++ < $offset) {
continue;
}
break;
}
$data = array();
while(($j++ < $lines) && !feof($fp)) {
$data[] = fgetcsv($fp);
}
fclose($fp);
return $data;
}
//如果已经上传文件,就读取csv文件,并显示在表单中
if(isset($cvs)){
unset($arrData);
$arrData=csv_get_lines($cvs['tmp_name'],20,0); ?>
<style>
.form-inline{ margin-bottom: 15px;}
.form-inline .form-group{display: inline-block;
margin-bottom: 0;
vertical-align: middle;
margin-right: 10px;
}
.form-group label{ display: inline-block;
max-width: 100%;
margin-bottom: 5px;
font-weight: 700; }
</style>
<form action="index.php?option=com_gnverification&view=addallcode&layout=updataall" method="post" id="upForm">
<?php foreach($arrData as $key=>$val){
if($val[1] || $val[2]){
?> <div class="form-inline">
<div class="form-group">
<label>number:</label><input type="text" value="<?php echo $val[0] ?>" name="data<?php echo $key;?>[]" class="form-control inputbox">
</div>
<div class="form-group">
<label>Code:</label> <input type="text" value="<?php echo $val[1] ?>" name="data<?php echo $key;?>[]" class="form-control inputbox code">
</div>
<div class="form-group">
<label>Model:</label><input type="text" value="<?php echo $val[2] ?>" name="data<?php echo $key;?>[]" class="form-control inputbox model">
</div>
</div> <?php
}
}?>
<div class="updata">
<input type="submit" class="btn" id="submitData">
</div>
</form>
<?php }?>

  3-2:JavaScript对将要提交的表单进行码的验证,通过即可提交,不通过就以红星显示不符规则的数据,可进行修改过后在提交

     <script>
var submitData =document.getElementById('submitData');
submitData.addEventListener('click',function(e){
//不符合,禁止提交
if(!checkCode()){
preventDefault(e);
}
});
//检查码是否符合规则,符合返回真,不符合返回假
function checkCode(){
var objList=document.getElementsByClassName('code');
var upForm=document.getElementById('upForm');
var flag;
for(var i=0;i<objList.length;i++){
//不符合code规则则设置flag为true,同时设置那个不符合code提示;
if(!/^[a-zA-Z]{2}[a-zA-Z0-9]{3}[0-9]{7}$/.test(objList[i].value)){
if(!objList[i].parentNode.getElementsByTagName('span').length){
var span =newSpan();
objList[i].parentNode.appendChild(span);
}
}else{
var span=objList[i].parentNode.getElementsByTagName('span');
if(span.length){
objList[i].parentNode.removeChild(span);
}
}
}
if(upForm.getElementsByTagName('span').length>0){
flag =false;
}else{
flag =true;
}
return flag;
}
//创建span标签
function newSpan(){
var spanTip=document.createElement('span');
spanTip.innerHTML='*';
spanTip.style.color='red';
return spanTip;
}
//阻止表单提交
function preventDefault(e){
e=e || window.event;
if(document.all){
e.returnValue=false;
}else{
e.preventDefault();
}
} </script>

4,C.php提交成功后,在此页面显示已添加数据

 <?php

 defined('_JEXEC') or die;

 ?>
<table class="table table-hover" style="width: 600px;">
<caption>These codes have been added!</caption>
<tr>
<th><strong>Number</strong></th>
<th><strong>Code</strong></th>
<th><strong>Model</strong></th>
</tr>
<?php
foreach($this->saveArr as $key=>$val){
?>
<tr>
<td><?php echo $key;?></td>
<td><?php echo $val[1];?></td>
<td><?php echo $val[2];?></td>
</tr>
<?php
}
?>
<tr>
<td align="right" colspan="4"><a href="<?php echo JRoute::_('index.php?option=com_gnverification&view=gnverifications'); ?>" class="btn">返回</a> </td>
</tr>
</table>

使用joomla通过CSV文件上传数据存入数据库并使用JavaScript验证码是否符合规则的更多相关文章

  1. Springboot 上传CSV文件并将数据存入数据库

    .xml文件依赖配置 <!--csv依赖 --> <dependency> <groupId>org.apache.commons</groupId> ...

  2. Hibernate上传数据到数据库,从数据库读取数据到本地模板代码

    1.Hibernate上传数据到数据库: //创建一个session对象 Session session1=HibernateTools.getSession(); //Fenciresult数据库表 ...

  3. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

  4. 解析Excel文件并把数据存入数据库

    前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致 ...

  5. java处理csv文件上传示例

    前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理. ReadCsvUtil工具类 package com.hanfengyeqiao.g ...

  6. Struct2 csv文件上传读取中文内容乱码

    网络上搜索下,发现都不适合 最终改写代码: FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br= n ...

  7. Excel文件上传存储到数据库

  8. OSS文件上传及OSS与ODPS之间数据连通

    场景描述        有这样一种场景,用户在自建服务器上存有一定数量级的CSV格式业务数据,某一天用户了解到阿里云的OSS服务存储性价比高(嘿嘿,颜值高),于是想将CSV数据迁移到云上OSS中,并且 ...

  9. javaWeb实现文件上传与下载 (转)

    文件上传概述 实现web开发中的文件上传功能,需完成如下二步操作: 在web页面中添加上传输入项 在servlet中读取上传文件的数据,并保存到本地硬盘中. 如何在web页面中添加上传输入项? < ...

随机推荐

  1. Android 删除新版安卓fragment_main.xml

    在新版本号的ADT中,创建androidproject时默认会产生两个xml文件--fragment_main和activity_main. 个人建议把fragment_main这个文件删除掉 1)将 ...

  2. Powershell 渗透测试工具-Nishang

    Powershell 渗透测试工具-Nishang 分享到: 作者:V1ct0r 稿费:500RMB(不服你也来投稿啊!) 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 传送门 ...

  3. 名词解释 —— 抄送(cc)、银弹(silver bullet)

    抄送(Carbon Copy,carbon copy 本身的含义是复写本,副本),又简称为 CC. 在现代汉语中,含有抄写与送达的双重意思. 在网络术语中,抄送就是将邮件同时发送给收信人以外的人, 用 ...

  4. Angular2之路由学习笔记

    目前工作中项目的主要技术栈是Angular2 在这里简单记录一下遇到的问题以及解决方案. 这篇笔记主要记录Angular2 的路由. 官方文档链接:https://angular.cn/docs/ts ...

  5. Email非正则表达式的判断

    判断一个邮件是否合法,我们除了可以使用正则表达四以外还可以利用,Email地址的规律进行判断,那么一个合法的Email有哪些要求昵?具体如下: 必须有@与. @必须在第一个.之前 @与.不能连在一起 ...

  6. Codeforces Round #438 (Div.1+Div.2) 总结

    本来兴致勃勃的想乘着这一次上紫,于是很早很早的到了机房 但是好像并没有什么用,反而rating-=47 Codeforces Round #438(Div.1+Div.2) 今天就这样匆匆的总结一下, ...

  7. [Offer收割]编程练习赛32

    气泡图 两两判断关系,dfs. #include<stdio.h> #include<string.h> #include<stdlib.h> #include&l ...

  8. jquery mobile动态加载数据后无法渲染

    引自:http://blog.sina.com.cn/s/blog_025270e901016lst.html jquery mobile在动态添加html之后无法渲染控件,无法转换控件的办法! jq ...

  9. 如何在Word的方框中打对号

    在word中,选择“插入”-“符号”,选择字体为“wingdings”,在倒数第二个特殊字符既是方框中有对号的特殊字符. 1. 2. 3.

  10. (转载) IaaS, PaaS, Saas

    如果你是一个网站站长,想要建立一个网站.不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序. 现在你追随潮流,采用流行的云计算,如果你采用 IaaS 服务,那么意味着你就不用自 ...