from表单学习

FORM标记的属性解释如下:

name:表单的名称

method:定义表单结果从浏览器传送到服务器的方法,一般有两种方法get和post

action:用来定义表单处理程序(一个ASP,CGI等程序)的位置( 相对地址或绝对地址)

enctype:设置表单资料的编码方式

target:设置返回信息的显示方式

  • NAME属性

通过为表单命名可以控制表单与后台程序之间的关系。

  • METHOD属性

METHOD属性中,GET方法是将表单内容附在URL地址后面,所以对提交信息的长度进行了限制,不可以超过8192个字符。如果信息太长,将被截去,从而导致意想不到的处理结果。同时GET方法不具有保密性,不适合处理如信用卡卡号等要求保密的内容,而且不能传送非ASCII码的字符。

POST方法是将用户在表单中填写的数据包含在表单的主体中,一起传送到服务器上的处理程序中,该方法没有字符的限制,它包含了ISO10646的字符集,是一种邮寄的方式,在浏览器的地址栏不显示提交的信息,这种方式传送的数据是没有限制的。

当不指明是哪种方式时,默认为GET方式

  • ENCTYPE属性

设置表单信息提交的编码方式,有以下几种:

TEXT/plain:以纯文本形式传送信息

Application/x-www-Form-urlencoded:默认的编码形式

Multipart/Form-data:使用MINE编码

  • TARGET属性

设置表单信息返回的窗口。

TARGET的值有以下几种:

_blank:将返回信息显示在新开的浏览器窗口中

_parent:将返回信息显示在父级浏览器窗口中

_self:将返回信息显示在当前浏览器窗口中

_top:将返回信息显示在顶级浏览器窗口中

<form id="Form1" method="post" runat="server"  action="common/OM/OrderUploadHandler.ashx" enctype="multipart/form-data" class="pageForm required-validate" onsubmit="return iframeCallback(this,CallBackAjaxDone)">
      <ul>
     <li>
      <table class="searchContent">
          <tr>
            <td>
                文件路径:<input type="file" id="OrderFile" name="OrderFile"/>  <input type="hidden" name="Action" value="upload" id="Action" field="Action" />
            </td>
          </tr>
         </table>
        </li>
        <li class="line"></li>
        <li> <button type="submit"  id="btn">上传</button> </li>

今天看别人写的代码的时候看到

submit="return iframeCallback(this,CallBackAjaxDone)不太理解,百度了一下。
首先是在form标签中有一个onsubmit的属性,他有两个值分别是true和false,如果true,这个网页就跳转到action属性的search_result.jsp页面,否则不跳转。所以用 return 返回一个true或false的值,函数是给用户输入的信息做一个验证的,成功就到action指定的页面处理。不成功就不处理
<script type="text/javascript">
        function CallBackAjaxDone(data) {
            try {
                data = data.replace("<PRE>", "");
                data = data.replace("</PRE>", "");
                var json = eval("(" + data + ")"); //转换为json对象
                if (json.result == "200") {
                    alertMsg.correct("订单上传成功!");
                    var fileobj = document.getElementById("OrderFile");
                    fileobj.outerHTML = fileobj.outerHTML;
                    //                    document.pagerForm.action = "搜索查询地址";
                    //                      document.pagerForm.submit();
                    $("#OrderUploadQuery").trigger("click");
                }
                else {
                    alertMsg.error(json.result);
                }
            }
            catch (e) {
                alertMsg.correct("订单上传失败:"+e.toString());
            }
        }
        var strAction;
        function onSubmit(strAction) {
            try {

                document.getElementById(‘ListAction‘).value = strAction

                return false;
            }
            catch (err) {
                alert(err.description);
            }
        }
    </script>

cation页面的处理:

<%@ WebHandler Language="C#" Class="OrderUploadHandler" %>

using System;
using System.Web;
using System.Data;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Web.SessionState;
using ERDP.Web.Common;
using SCM.POS.SA.Service;
using SCM.POS.OM.Domain;
using SCM.POS.OM.Service;

public class OrderUploadHandler : ERDP.Web.UI.BasePage, IHttpHandler, IRequiresSessionState
{
    ERDP.Common.LoginSession _login;
    string strFID = "";
    string strResult = "";
    string strpostatus = "";

    HttpPostedFile PostOrderFile;
    Hashtable htPara = new Hashtable();
    StockOrder _StockOrder = StockOrder.GetInstance();
    OrderUpload _OrderUpload = OrderUpload.GetInstance();
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        _login = GetLoginSession();
        string strAction = context.Request["Action"] == null ? "add" : context.Request["Action"].ToString();

        strFID = context.Request["FIDS"] == null ? "" : Context.Request["FIDS"].ToString(); //删除信息时会传入

        strpostatus = context.Request["STATUS"] == null ? "" : Context.Request["STATUS"].ToString();

        strResult = "{Action:‘" + strAction.ToLower() + "‘";

        if (Context.Request["json_Contect"] != null)
            htPara = new ERDP.Web.Common.Json(Context.Request["json_Contect"].ToString());//            

        if (HttpContext.Current.Request.Files["OrderFile"] != null)
        {
            PostOrderFile = HttpContext.Current.Request.Files["OrderFile"];
        }

        try
        {
            switch (strAction.ToLower())
            {

                case "upload":
                    upload(PostOrderFile);
                    strResult += ",result:‘200‘";
                    break;
                case "confirm":
                    confirm();
                    break;
                case "delete":
                    delete();
                    break;
            }
        }
        catch (Exception ex)
        {
            strResult += ",result:‘" + ex.Message.ToString().Replace(":", "  ").Replace("\"", " ").Replace("‘", "  ").Replace(",", "").Replace("\n", "") + "‘";
            //  strResult += ",result:‘处理出现异常。请联系系统管理员!‘";
        }
        context.Response.Write(strResult + "}");
    }
    void confirm()
    {
        ERDP.Assemble.Domain.E_MasterSlave eMasterSlave = new ERDP.Assemble.Domain.E_MasterSlave();
        E_OrderUpload e_OrderUpload=new E_OrderUpload();
        string[] strsavel = strFID.Substring(0, strFID.Length - 1).Split(‘|‘);
        for (int i = 0; i < strsavel.Length; i++)
        {
            eMasterSlave.SlaveList.Add(strsavel[i]);
            Hashtable ht_para=new Hashtable();
            ht_para.Add("mFID",strsavel[i].ToString());
            e_OrderUpload=_OrderUpload.GetOrderUpload(ht_para);
            ht_para.Add("mFIssueNumber", e_OrderUpload.mFNumber);
            if (_StockOrder.GetOrderByIssuNumber(ht_para) > 0)
            {
                strResult += ",result:‘【订单号"+e_OrderUpload.mFNumber+"已确认】。‘";
                return;
            }
        }
        eMasterSlave.Masterid = _login.mUserID;
        eMasterSlave.Backup_L1 = _login.mOUID;
        eMasterSlave.Backup_L2 = System.Guid.NewGuid().ToString().Replace("-","");
        if (eMasterSlave.SlaveList.Count == 0)
        {
            strResult += ",result:‘没有选择确认订单。‘";
            return;
        }
        OrderUpload _orderUpload = OrderUpload.GetInstance();
        //插入日志
        Hashtable ht_log = new Hashtable();
        ht_log.Add("mFID", SysHelper.NewGUID);
        ht_log.Add("mFName", _login.mFLoginName);
        ht_log.Add("mFType", "操作");

        ht_log.Add("mFDescription", "订单确认");
        ht_log.Add("mFIP", _login.LoginIP);
        ht_log.Add("mCreateBy", _login.mUserID);

        ht_log.Add("mLastUpdateBy", _login.mUserID);
        ht_log.Add("mOrgUnitID", _login.mOUID);

        _orderUpload.BatchConfirmOrder(eMasterSlave, ht_log);
        strResult += ",result:‘200‘";
    }

    void delete()
    {
        ERDP.Assemble.Domain.E_MasterSlave eMasterSlave = new ERDP.Assemble.Domain.E_MasterSlave();
        string[] strstatu = strpostatus.Substring(0, strpostatus.Length - 1).Split(‘|‘);
        string[] strsavel = strFID.Substring(0, strFID.Length - 1).Split(‘|‘);

        if (strsavel.Length == 0)
        {
            strResult += ",result:‘没有选择删除记录。‘";
            return;
        }
        OrderUpload _orderUpload = OrderUpload.GetInstance();
        //插入日志
        Hashtable ht_log = new Hashtable();
        ht_log.Add("mFID", SysHelper.NewGUID);
        ht_log.Add("mFName", _login.mFLoginName);
        ht_log.Add("mFType", "操作");

        ht_log.Add("mFDescription", "订单删除");
        ht_log.Add("mFIP", _login.LoginIP);
        ht_log.Add("mCreateBy", _login.mUserID);

        ht_log.Add("mLastUpdateBy", _login.mUserID);
        ht_log.Add("mOrgUnitID", _login.mOUID);
        _orderUpload.BatchDeleteOrderUpload(strsavel, strstatu, _login.mUserID, ht_log);
        strResult += ",result:‘200‘";
    }

    void upload(HttpPostedFile htpf)
    {
        //1、上传附件
        string fileaadress = htpf.FileName;
        int startPoint = fileaadress.LastIndexOf("\\") + 1;
        int endPoint = fileaadress.IndexOf(".");
        string filename = fileaadress.Substring(startPoint, endPoint - startPoint);

        string strfileExtension = fileaadress.Substring(fileaadress.IndexOf(".") + 1);
        //备份文件
        string filenamefull = fileaadress.Substring(fileaadress.LastIndexOf("\\") + 1);
        string NewFile = "order" + DateTime.Now.ToString("yyMMddHHmmssfff") + "." + strfileExtension;

        string serviceFilePath = System.Web.HttpContext.Current.Server.MapPath("~\\");
        if (!Directory.Exists(serviceFilePath + @"temp\"))
        {
            Directory.CreateDirectory(serviceFilePath + @"temp\");
        }
        htpf.SaveAs(serviceFilePath + @"temp\" + NewFile);
        //上传至服务器
        DataTable dt = ReadFromExcelBySheet(serviceFilePath + @"temp\" + NewFile, "sheet");
        if (dt.Rows.Count == 0)
        {
            throw new Exception("导入的数据为空!");
        }
        //1.2在同一个导入的excel中同一个零件编码的零件,SNP,零件名称,必须要一致,否则导入数据会出错。
        string partNo1 = dt.Rows[0][11].ToString();
        //
        string strFactoryOrderNo = dt.Rows[0][0].ToString() + dt.Rows[0][1].ToString();

        List<string> listpartNO = new List<string>();
        listpartNO.Add(partNo1.Trim());
        //循环表中所有的零件编号  零件编号11列 零件名称12列,SNP为14
        //工厂代码0    订单号码1    到货年2    到货月3    到货日4    到货小时5    到货分6    

         OrderUpload _orderupload = OrderUpload.GetInstance();

        int i = 0;

        //余数
        int remainercount = 0;
        foreach (DataRow dr in dt.Rows)
        {

            //可以在这里判断必填写字段和规则;????????????????
            if (dr[0].ToString() == "")
            {
                throw new Exception("导入失败:发行号为[" + dr[1].ToString() + "]的订单中工厂必须填写!");
            }
            if (dr[1].ToString() == "")
            {
                throw new Exception("导入失败:有发行号为空的订单,请检查!");
            }

            if (dr[1].ToString().Length != 7)
            {
                throw new Exception("导入失败:发行号长度必须为7位!");
            }
            //判断同一个收货工厂的发行号不能重复
            Hashtable htAA = new Hashtable();
            htAA.Add("mFNeedGoodsDeptNumber", dr[0].ToString().Trim());
            htAA.Add("mFNumber", dr[1].ToString().Trim());

            if (_orderupload.QueryOrderCount(htAA) > 0)
            {
                throw new Exception("导入失败:发行号为[" + dr[1].ToString() + "]订单已经存在!");

            }

            //
            //年
            try
            {
                if (dr[2].ToString().Length != 4)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中年份必须为4位的整数!");
                }
                if (int.Parse(dr[2].ToString()) <= 0  )
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中年费必须大于等于零!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中年份必须为数字!");
            }
            //月
            try
            {
                if (dr[3].ToString()=="")
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中月份不能为空!");
                }
                if (int.Parse(dr[3].ToString()) <= 0 || int.Parse(dr[3].ToString()) >12)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中月份必须为1到12的整数!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中月份必须为数字!");
            }

            //日
            try
            {
                if (dr[4].ToString() == "")
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中日不能为空!");
                }
                if (int.Parse(dr[4].ToString()) <= 0 || int.Parse(dr[4].ToString()) > 31)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中日必须为1到31的整数!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中日必须为数字!");
            }
            //小时
            try
            {
                if (dr[5].ToString() == "")
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中小时不能为空!");
                }
                if (int.Parse(dr[5].ToString()) <= 0 || int.Parse(dr[4].ToString()) > 24)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中小时必须为1到24的整数!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中小时必须为数字!");
            }
            //分钟
            try
            {
                if (dr[6].ToString() == "")
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中分钟不能为空!");
                }
                if (int.Parse(dr[6].ToString()) < 0 || int.Parse(dr[6].ToString()) > 60)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中分钟必须为0到60的整数!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中分钟必须为数字!");
            }

            //供应商代码7    供应商仓库代码8    生担9    到货地代码10
            if (dr[7].ToString() == "")
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中供应商必须填写!");
            }
            if (dr[8].ToString() == "")
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中供应商仓库代码必须填写!");
            }
            if (dr[9].ToString() == "")
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中生但必须填写!");
            }
            if (dr[10].ToString() == "")
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中到货地代码必须填写!");
            }
            //  //零件代码11    零件英文名称12    订货数13    SNP14    当工顺15    箱数16    内外区分(必填)17
            if (dr[11].ToString() == "")
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中零件代码必须填写!");
            }
            if (dr[13].ToString() == "")
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中订货数必须填写!");
            }
            try
            {
                if (dr[13].ToString() == "")
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中订货数必须填写!");
                }
                if (int.Parse(dr[13].ToString())<=0)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中订货数必须大于等于零!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中订货数必须为数字!");
            }
            //SNP14    当工顺15    箱数16    内外区分(必填)17
            try
            {
                if (dr[14].ToString() == "")
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中SNP必须填写!");
                }
                if (int.Parse(dr[14].ToString()) <= 0)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中SNP必须大于等于零!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中SNP必须为数字!");
            }
            try
            {
                if (dr[16].ToString() == "")
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中箱数必须填写!");
                }
                if (int.Parse(dr[16].ToString()) <= 0)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中箱数必须大于等于零!");
                }
            }
            catch
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中箱数必须为数字!");
            }
            if (dr[17].ToString() == "")
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的订单中内外区分必须填写!");
            }
            if (i!=0)
            {
                //同一个发行号,在订单中只能出现一次,判断发行在同一个工厂是否重复出现;
                if (strFactoryOrderNo == dr[0].ToString() + dr[1].ToString())
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]在工厂[" + dr[0].ToString() + "]中重复出现!");
                }
            }

            if (dr[11].ToString().Trim() != partNo1.Trim())
            {
                if (!listpartNO.Contains(dr[11].ToString()))
                {
                    listpartNO.Add(dr[11].ToString().Trim());
                }
            }

            /***判断数据是否正确-START***/
            //订货数13    SNP14        箱数16
            //箱数*SNP-订货数<=SNP
            int snpcount = int.Parse(dr[14].ToString());
            int boxcount = int.Parse(dr[16].ToString());
            int ordercount = int.Parse(dr[13].ToString());
            if (snpcount * boxcount - ordercount < snpcount)
            {
                if (snpcount * boxcount - ordercount > 0)
                {
                    remainercount = ordercount % snpcount;
                }
                if (snpcount * boxcount - ordercount < 0)
                {
                    throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的数据有问题,请检查!");
                }
            }
            else
            {
                throw new Exception("导入失败:发行号[" + dr[1].ToString() + "]的数据有问题,请检查!");
            }
            /***判断数据是否正确-END***/

            i = i + 1;
        }

        //判断同一个零件的名称和SNP是否一致;
        foreach (string skey in listpartNO)
        {
            DataRow dtb = dt.Select("零件代码=‘" + skey + "‘")[0];

            foreach (DataRow item in dt.Select("零件代码=‘" + skey + "‘"))
            {
                if (dtb[12].ToString() != item[12].ToString() || dtb[14].ToString() != item[14].ToString())
                {
                    throw new Exception("导入失败:相同零件编号:[" + skey + "]的名称和SNP不一致!");
                }
            }
        }
        //================================
        ERDP.SCM.Service.Common _Common = new ERDP.SCM.Service.Common();

        //给参数赋值
        List<E_OrderUpload> ListOrderUpload = new List<E_OrderUpload>();
        foreach (DataRow dr in dt.Rows)
        {
            E_OrderUpload entity = new E_OrderUpload();
            entity.mFID = _Common.GUID();
            entity.mFNumber = dr[1].ToString();
            entity.mFNeedGoodsDeptNumber = dr[0].ToString();
            entity.mFToInstructionTime = DateTime.Parse(dr[2].ToString()+"-"+dr[3].ToString()+"-"+dr[4].ToString()+" "+dr[5].ToString()+":"+dr[6].ToString() );
            entity.mFSupplyNumber = dr[7].ToString();
            entity.mFOutGoodsDeptNumber = dr[8].ToString();
            entity.mFProduce = dr[9].ToString();
            entity.mFToGoodsPlaceNumber = dr[10].ToString();
            entity.mFPartNumber = dr[11].ToString();
            entity. mFPartENName= dr[12].ToString();
            entity.mFOrderCount = int.Parse(dr[13].ToString());
            entity. mFSNP=int.Parse( dr[14].ToString());
            entity.mFWorkPlace = dr[15].ToString();
            entity.mFContainerCount=int.Parse( dr[16].ToString());
            entity.mFInAndOut = dr[17].ToString();

            entity.mFRemainder = remainercount;
            entity.mCreateby = _login.mUserID;
            entity.mLastUpdateby = _login.mUserID;
            //entity.mOrgUnitID = _login.mOUID;
            entity.mFReceiverTime = _Common.GetSysTime();
            ListOrderUpload.Add(entity);
        }
        //插入日志
        Hashtable ht_log = new Hashtable();
        ht_log.Add("mFID", SysHelper.NewGUID);
        ht_log.Add("mFName", _login.mFLoginName);
        ht_log.Add("mFType", "操作");

        ht_log.Add("mFDescription", "订单上传");
        ht_log.Add("mFIP", _login.LoginIP);
        ht_log.Add("mCreateBy", _login.mUserID);

        ht_log.Add("mLastUpdateBy", _login.mUserID);
        ht_log.Add("mOrgUnitID", _login.mOUID);
        _orderupload.BatchInsertOrderUpload(ListOrderUpload, ht_log);       

    }

    /// <summary>
    /// 功能描述:根据指定条件读取Excel表格数据
    /// </summary>
    /// <param name="Str_FileName">Excel表格所在的完整路径</param>
    /// <param name="Int_RowStart">起始行,从1开始</param>
    /// <param name="Int_ColStart">起始列,1到26</param>
    /// <param name="Int_ColEnd">终止列,1到26</param>
    /// <param name="Str_Array_Column">列名拼接字符串 格式为:列名1|列名2|列名3</param>
    /// <returns></returns>
    public static DataTable ReadFromExcelBySheet(string Str_FileName, string Str_Array_Column)
    {
        DataTable dt = new DataTable("Table1");
        try
        {
            dt = ExcelHelper.InputFromExcel(Str_FileName, "sheet");
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return dt;
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}
				
时间: 2024-08-04 03:04:07

from表单学习的相关文章

&lt;form&gt;表单学习

今天主要学习<form>标签 <input>输入标签 method方法分post和get两种 主要区别 (1)post信息是加密的,get则是明文. (2)get数据量不超过2k,post一般不受限制. (3)post主要写在form表单里,get主要以URL地址栏链接的形式使用. (4)post主要用于向服务器传送数据,get主要用于向服务器要数据. 下面写个登录表的代码: <!DOCTYPE html> <html> <head> <m

php表单学习

php超全局变量$GLOBALS用于在任意位置访问全局变量,在名为$GLOBALS[index]中存储全局变量,变量名字就是数组的键.$_SERVER保存关于报头,路径和脚本位置信息.<?phpecho $_SERVER['PHP_SELF']."<br>";//当前执行脚本的文件名echo $_SERVER['SERVER_NAME']."<br>";//当前运行脚本所在服务器的主机名echo $_SERVER['HTTP_HOST'

表单学习

一.基础 <body><font size="45" color="#FF0000"><strong>4.表单</strong></font><br/><form>文本框<input type="text" value="123"/><br/>密码框<input type="password"

PHP 文件上传表单 ~~学习笔记

PHP文件上传 通过PHP,可以把文件上传到服务器. ------------------------------------------------------------------------------------------------------------------- 创建一个文件上传表单:允许用户从表单上传文件时非常有用的: 下面是一个供上传文件的html表单: <html> <body> <form action="upload_file.php

表单学习心得

表单 1元素 form 用于后台提交数据使用 input 输入数据 tape 类型 value 值 其中常用的type类型: radio 单选 checkbox 多选 text 文本 password 密码 button按钮 分为三种 submit 带提交的按钮 <button></button>标签按钮 input插入按钮,其中标签按钮常用 seset 重置 image 图片 hidden 隐藏 color 颜色 HTML5 TYPE类型 file 文件 date日期(mouth

Html学习之十六(表格与表单学习--课程表制作)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>课程表</title> <style> table{/*设置外部相关属性,不要设置内部属性*/ width: 500px; height: 300px; border: 3px black solid; margin: 100px auto; /*padding: 20px;*/ bo

学习W3CSCHOOL 表单验证

1 //表单学习笔记 2 //建立一张表单的验证 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 7 <title>表单验证</title> 8 </head> 9 <body> 10 <?php 11

玩转html5(三)---智能表单(form),使排版更加方便

<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>form表单学习笔记</title> </head> <body> <!-- 在旧版的html中,form表单与input等元素必须嵌套使用,为了排版方便,在html中提出了新方法

[原创]java WEB学习笔记34:Session 案例 之 解决表单重复提交

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------