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

1,实现效果截图

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

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

 1 <div class="uploadFile border_bg">
 2     <form action="" method="post" id="formToUpdate">
 3         <div class="form-group">
 4             <label ><strong>Import from csv</strong></label>
 5             <input type="file" name="uploadCSV" id="upCsv">
 6             <input id="ajaxSubmit" type="button" value="upload CSV" class="btn">
 7         </div>
 8
 9     </form>
10
11 </div>

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

 1 <script type="text/javascript" language="javascript">
 2
 3     jQuery(function(){
 4         jQuery("#ajaxSubmit").on("click",function(e){
 5             //console.log(jQuery(this));
 6             var file=jQuery(‘#upCsv‘).val();
 7             var fileArr=file.split(‘.‘);
 8             if((fileArr[fileArr.length-1]) !== ‘csv‘){
 9                 alert("please upload CSV file!")
10                 preventDefault(e);
11             }else{
12                 jQuery("#formToUpdate").ajaxSubmit({
13                     type:‘post‘,
14                     url:‘index.php?option=com_gnverification&view=doajax&layout=show‘,
15                     success:function(data){
16                         document.write(data);
17                     },
18                     error:function(XmlHttpRequest,textStatus,errorThrown){
19                         console.log(XmlHttpRequest);
20                         console.log(textStatus);
21                         console.log(errorThrown);
22                     }
23                 });
24             }
25
26         });
27     });
28     function preventDefault(e){
29         e=e || window.event;
30         if(document.all){
31             e.returnValue=false;
32         }else{
33             e.preventDefault();
34         }
35     }
36
37
38 </script>

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

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

 1 <?php
 2
 3
 4
 5 defined(‘_JEXEC‘) or die;
 6
 7     //joomla 获取CSV文件
 8     $cvs=JRequest::getVar(‘uploadCSV‘,‘‘,‘files‘);
 9     //读取CSV文件数据,并存入数组
10     function csv_get_lines($csvfile, $lines, $offset = 0) {
11         if(!$fp = fopen($csvfile, ‘r‘)) {
12             return false;
13         }
14         $i = $j = 0;
15         while (false !== ($line = fgets($fp))) {
16             if($i++ < $offset) {
17                 continue;
18             }
19             break;
20         }
21         $data = array();
22         while(($j++ < $lines) && !feof($fp)) {
23             $data[] = fgetcsv($fp);
24         }
25         fclose($fp);
26         return $data;
27     }
28     //如果已经上传文件,就读取csv文件,并显示在表单中
29     if(isset($cvs)){
30         unset($arrData);
31         $arrData=csv_get_lines($cvs[‘tmp_name‘],20,0);
32
33     ?>
34     <style>
35         .form-inline{ margin-bottom: 15px;}
36         .form-inline .form-group{display: inline-block;
37             margin-bottom: 0;
38             vertical-align: middle;
39             margin-right: 10px;
40         }
41         .form-group label{    display: inline-block;
42             max-width: 100%;
43             margin-bottom: 5px;
44             font-weight: 700;
45
46         }
47     </style>
48     <form action="index.php?option=com_gnverification&view=addallcode&layout=updataall" method="post" id="upForm">
49     <?php foreach($arrData as $key=>$val){
50             if($val[1] || $val[2]){
51         ?>
52
53        <div class="form-inline">
54             <div class="form-group">
55                 <label>number:</label><input type="text" value="<?php echo $val[0] ?>" name="data<?php echo $key;?>[]" class="form-control inputbox">
56             </div>
57             <div class="form-group">
58                 <label>Code:</label> <input type="text" value="<?php echo $val[1] ?>" name="data<?php echo $key;?>[]" class="form-control inputbox code">
59             </div>
60             <div class="form-group">
61                 <label>Model:</label><input type="text" value="<?php echo $val[2] ?>" name="data<?php echo $key;?>[]" class="form-control inputbox model">
62             </div>
63        </div>
64
65     <?php
66             }
67             }?>
68         <div class="updata">
69             <input type="submit" class="btn" id="submitData">
70         </div>
71     </form>
72 <?php }?>

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

 1     <script>
 2         var submitData =document.getElementById(‘submitData‘);
 3         submitData.addEventListener(‘click‘,function(e){
 4             //不符合,禁止提交
 5             if(!checkCode()){
 6                 preventDefault(e);
 7             }
 8         });
 9         //检查码是否符合规则,符合返回真,不符合返回假
10         function checkCode(){
11             var objList=document.getElementsByClassName(‘code‘);
12             var upForm=document.getElementById(‘upForm‘);
13             var flag;
14             for(var i=0;i<objList.length;i++){
15                 //不符合code规则则设置flag为true,同时设置那个不符合code提示;
16                 if(!/^[a-zA-Z]{2}[a-zA-Z0-9]{3}[0-9]{7}$/.test(objList[i].value)){
17                     if(!objList[i].parentNode.getElementsByTagName(‘span‘).length){
18                         var span =newSpan();
19                         objList[i].parentNode.appendChild(span);
20                     }
21                 }else{
22                     var span=objList[i].parentNode.getElementsByTagName(‘span‘);
23                   if(span.length){
24                       objList[i].parentNode.removeChild(span);
25                    }
26                 }
27             }
28             if(upForm.getElementsByTagName(‘span‘).length>0){
29                 flag =false;
30             }else{
31                 flag =true;
32             }
33             return flag;
34         }
35         //创建span标签
36         function newSpan(){
37             var spanTip=document.createElement(‘span‘);
38             spanTip.innerHTML=‘*‘;
39             spanTip.style.color=‘red‘;
40             return spanTip;
41         }
42         //阻止表单提交
43         function preventDefault(e){
44             e=e || window.event;
45             if(document.all){
46                 e.returnValue=false;
47             }else{
48                 e.preventDefault();
49             }
50         }
51
52     </script>

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

 1 <?php
 2
 3
 4
 5 defined(‘_JEXEC‘) or die;
 6
 7 ?>
 8 <table class="table table-hover"  style="width: 600px;">
 9     <caption>These codes have been added!</caption>
10     <tr>
11         <th><strong>Number</strong></th>
12         <th><strong>Code</strong></th>
13         <th><strong>Model</strong></th>
14     </tr>
15     <?php
16         foreach($this->saveArr as $key=>$val){
17     ?>
18     <tr>
19         <td><?php echo $key;?></td>
20         <td><?php echo $val[1];?></td>
21         <td><?php echo $val[2];?></td>
22     </tr>
23     <?php
24     }
25     ?>
26     <tr>
27         <td align="right" colspan="4"><a href="<?php echo JRoute::_(‘index.php?option=com_gnverification&view=gnverifications‘); ?>" class="btn">返回</a> </td>
28     </tr>
29 </table>
时间: 2024-08-23 21:42:17

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

文件上传表单 上传文件的细节 文件上传下载和数据库结合

1 文件上传表单   1)上传文件的本质是文本复制的过程   2)技术层面,在Java中一定会用到IO操作,主要以二进制方式读写   3)传统方式下,对于上传文件字段不同的浏览器有着不同的解析方式,例如:     IE6:upfile=c:\aa\bb\a.JPG     非IE6: upfile=a.JPG   4)可以将form以MIME协议的方式将上传文件传递到服务端,服务端以二进制流的方式读写     代码:客户端form enctype="multipart/form-data&quo

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

Hibernate上传数据到数据库: 1 //创建一个session对象 2 Session session1=HibernateTools.getSession(); 3 //Fenciresult数据库表所对应的实体类,生成实体类对象,操作数据库表 4 Fenciresult fenciresult=new Fenciresult(); 5 //设置数据库对应字段的值,主键若是自增模式,无需人为设置 6 fenciresult.setWord("@"); 7 fenciresult

servlet实现文件上传数据增删该查

控制层: 文件上传需要import org.apache.commons.fileuploadjar包 package com.product.dbutil.product.action; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import java.util.Map; impor

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

前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致总报同一个错,最后在同学的帮助下顺利解决,下面我把自己用"POI"解析的方法总结出来供大家参考(我用的是SpingMVC和hibernate框架). 1.web.xml中的配置文件 web.xml中的配置文件就按照这种方式写,只需要把"application.xml"换

用纯ASP代码实现图片上传并存入数据库中

用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中 关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如 你想要在自己的社区里面实现类似网易虚拟社区提供的"每日一星"的功能, 就要提供给网友上传照片的功能.上传图片文件到服务器可以使用各种免费的 文件上传组件,使用起来功能虽然很强大,但是由于很多情况下,我们只能使 用免费的支持ASP的空间或者租用别人的虚拟空间,对于第一种情况,我们 根本就没有可能来使用文件上传组件:至于第二种情况,我们也要付出不少的 &q

用纯ASP代码实现图片上传并存入数据库中

用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如你想要在自己的社区里面实现类似网易虚拟社区提供的“每日一星”的功能,就要提供给网友上传照片的功能.上传图片文件到服务器可以使用各种免费的文件上传组件,使用起来功能虽然很强大,但是由于很多情况下,我们只能使用免费的支持ASP的空间或者租用别人的虚拟空间,对于第一种情况,我们根本就没有可能来使用文件上传组件:至于第二种情况,我们也要付出不少的“银子”才可以.除非你拥有自

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

网络上搜索下,发现都不适合 最终改写代码: FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br= null; try { fis = new FileInputStream(file); isr = new InputStreamReader(fis,"gbk"); br = new BufferedReader(isr); String line1 = null; while ((li

FileUpload系列:(2)文件上传示例

示例 package com.rk.web.servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException;

javaEE(10)_文件上传下载

一.文件上传概述 1.实现web开发中的文件上传功能,需完成如下二步操作: •在web页面中添加上传输入项•在servlet中读取上传文件的数据,并保存到本地硬盘中. 2.如何在web页面中添加上传输入项?    <input type=“file”>标签用于在web页面中添加文件上传输入项,设置文件上传输入项时须注意:•必须要设置input输入项的name属性,否则浏览器将不会发送上传文件的数据.•必须把form的enctype属值设为multipart/form-data.设置该值后,浏览