Ajax+PHP 边学边练之四 表单


Posted in PHP onNovember 27, 2009

谈到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值写入数据库。
Ajax+PHP 边学边练之四 表单 
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"); 
?>

源代码下载
PHP 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
php生成随机数或者字符串的代码
Sep 05 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
Laravel开启跨域请求的方法
Oct 13 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 PHP
PHP Session变量不能传送到下一页的解决方法
Nov 27 #PHP
完美解决PHP中文乱码
Nov 26 #PHP
php google或baidu分页代码
Nov 26 #PHP
php 接口类与抽象类的实际作用
Nov 26 #PHP
在mysql数据库原有字段后增加新内容
Nov 26 #PHP
Ajax PHP 边学边练 之三 数据库
Nov 26 #PHP
php 运行效率总结(提示程序速度)
Nov 26 #PHP
You might like
ftp类(myftp.php)
2006/10/09 PHP
PHP中的日期及时间
2006/11/23 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
简单介绍Python中的readline()方法的使用
2015/05/24 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
python操作toml文件的示例代码
2020/11/27 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
Java程序员面试题
2016/09/27 面试题
开业主持词
2014/03/21 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
《假如》教学反思
2014/04/17 职场文书
工程承诺书怎么写
2014/05/24 职场文书
员工手册董事长致辞
2015/07/29 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB