Ajax PHP 边学边练 之四 表单
通过上一篇文章已经了解到如何利用Ajax和PHP对数据库进行数据读取,这样可以动态的获取到数据库的最新数据。本篇则继续介绍通过表单(Form)向数据库中写入数据。
谈到Form就涉及到一个发送请求方式问题(GET和POST),对于GET和POST的使用和区别在本文就不详细说明了,一般对于Web开发由于POST传值为隐式且传输数据量较大所以比较常用。在本例中对functions.js进行下修改,将创建XMLHttp对象程序创建为一个函数processajax。
function processajax (serverPage, obj, getOrPost, str){ //将创建XMLHttpRequest对象写到getxmlhttp()函数中,并获取该对象 xmlhttp = getxmlhttp (); //GET方式(和前面几篇一样) if (getOrPost == "get"){ xmlhttp.open("GET", serverPage); xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ obj.innerHTML = xmlhttp.responseText; } } xmlhttp.send(null); } //POST方式 else{ //第三个true参数将打开异步功能 xmlhttp.open("POST", serverPage, true); //创建POST请求 xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=GB2312"); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { obj.innerHTML = xmlhttp.responseText; } } //表单(Form)传值 xmlhttp.send(str); } }
在下图中当点击“Submit”按钮后会激发submitform函数(functions.js),在该函数中会通过getformvalues函数检查Form内容是否都填写完毕,否则提示哪项未填写。当检查通过后会调用process_task.php程序,它会将Form值写入数据库。
submitform 函数:
function submitform (theform, serverPage, objID, valfunc){ var file = serverPage; //检查Form值 var str = getformvalues(theform,valfunc); //Form全部填写 if (aok == true){ obj = document.getElementById(objID); //运行Ajax进行传值 processajax(serverPage, obj, "post", str); } }
getformvalues 函数:
function getformvalues (fobj, valfunc){ var str = ""; aok = true; var val; //遍历Form中所有对象 for(var i = 0; i < fobj.elements.length; i++){ if(valfunc){ if (aok == true){ val = valfunc (fobj.elements[i].value,fobj.elements[i].name); if (val == false){ aok = false; } } } str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&"; } //将Form值以String形式返回 return str; }
process_task.php 程序:
<?php require_once ("dbconnector.php"); opendatabase(); //对数据预处理 $yourname = strip_tags (mysql_real_escape_string ($_POST['yourname'])); $yourtask = strip_tags (mysql_real_escape_string ($_POST['yourtask'])); $thedate = strip_tags (mysql_real_escape_string ($_POST['thedate'])); //创建Insert语句 $myquery = "INSERT INTO task (name, thedate, description) VALUES ('$yourname','$thedate','$yourtask')"; //执行SQL语句 if (!mysql_query ($myquery)){ header ("Location: theform.php?message=There was a problem with the entry."); exit; } //返回成功信息 header ("Location: theform.php?message=Success"); ?>
源代码下载
转载于:https://blog.51cto.com/186067/1280704
Ajax PHP 边学边练 之四 表单相关推荐
- web前端必学功法之一:表单校验(1)
web前端必学功法之一:表单校验 案例效果: 这里的布局采用的是bootstrap布局 <div class="container" style="margin-t ...
- web前端必学功法之一:表单校验(2)
web前端必学功法之一:表单校验(2) 这里采用另一种写法,jQuery写法,在用jQuery写法之前,一定要引入jquery.js. <div class="container&qu ...
- php提交之前验证数据ajax提示,在通过Ajax请求提交之前使用jQuery进行表单验证
在尝试使用Ajax请求将表单提交到我的php脚本之前,我试图让我的表单进行验证.我查看了stackoverflow并没有找到有用的东西. 我有3个输入和一个提交按钮: $(document).read ...
- servlet+JQuery ajax以json的形式的验证表单小实例
JQuery $.ajax() $.ajax({type: 'POST', //请求方式 一般是get,posturl: url , // 这是必需的,规定把请求发送到哪个 URLdata: data ...
- 使用ajax提交图片,提交已经注入文件的表单给后台上传图片 使用ajaxsubmit
使用jquery form插件进行异步带文件的表单提交 引入form插件与jquery 的js文件后 获取表单的jq对象 然后.ajaxSubmit提交表单即可 实现添加品牌的异步表单提交 funct ...
- AJAX学习笔记——发送AJAX的POST请求,模拟from表单提交
关于AJAX发送POST请求,首先演示一个小案例. 当输入用户名:张三,密码:123.点击发送请求按钮 这是用post请求模拟的表单提交.接下来看一下如何用AJAX发送POST请求 后端代码: @We ...
- 前端学习笔记--AJAX的应用(三)form表单改为AJAX提交
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程. 参考博客:http://ww ...
- ajax提交成功清空表单,Ajax提交数据后,清空form表单
按钮不同,页面相同,还需要显示的数据不同,这里会由于页面的缓存问题,导致,每次点开这个页面显示的数据相同. 这不是我们想要的.这就需要清楚表单数据了. 如下: $('#myform')[0].rese ...
- contactform7 ajax,Contact Form 7 最强大的wordpress表单插件
10年前 (2011-09-02) | 54,093 views | 54 条评论 | 本文共2961个字 朗读这篇文章 不得不介绍一下这款插件Contact Form 7,真的是很强大,在还没用上C ...
最新文章
- php引用计数的基本知识
- WinCE 应用程序开机自动方法
- mybatis显示sql语句 log4j.properties配置文件
- 【操作系统】Semaphore处理读者-写者问题
- 【Logstash】记录一次logstash拉取数据很慢的问题
- 电脑如何进入bios模式_电脑如何进入bios,你还不收藏?
- NOIP模拟题——LGTB与序列
- 【问题解决】D:\Users10476\AppData\Local\Programs\Microsoft vsCode\unins000.exe 尝试在目标目录创建文件时发生一个错误:拒绝访问。.
- 揭秘!用Python做副业躺赚的4个大招
- 互联网应用的两种工作模式:客户/服务器模式与P2P模式
- 无法打开FTP在 windows资源管理器中打开FTP站点解决方法
- 天天向上的力量---python持续的力量
- NVDIMM的应用场景
- Linux 字体微调 - windows 效果版
- 喜讯!双驰企业正式成为欧盟地平线2020 项目合作伙伴
- 数字集成电路设计考试概念总结
- 大型欧姆龙PLC NJ系列ST语言Ethercat总线24轴 伺服电池生产线欧姆龙PLC程序大型程序NJ系列
- open vas简介
- MATLAB计算二元一次方程组
- css入门学习day02笔记
热门文章
- free是自由,不是免费,从王开源说起
- linux下目录的个个文件夹含义
- git 挽救忘记提交到哪个分支的代码
- office2007安装提示“Windows Installer 服务不能更新一个或多个受保护的Windows文件...
- ubuntu root用户没有声音(提示”正在等待声音系统响应”)
- gridview、datalist、repeater、FormView、DetailsView的区别详解
- String.Split()函数
- iOS如何在iTunes网站查看并下载APP的dsym文件
- Trie UVALive 7192 Chip Factory (15长春J)
- Daily Scrum 10.26