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 相关文章推荐
PHP高自定义性安全验证码代码
Nov 27 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 PHP
PHP获取当前时间不准确问题解决方案
Aug 14 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
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
laravel入门知识点整理
2020/09/15 PHP
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
python插入排序算法的实现代码
2013/11/21 Python
Python中%r和%s的详解及区别
2017/03/16 Python
Django组件cookie与session的具体使用
2019/06/05 Python
如何通过Python实现标签云算法
2019/07/02 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Django实现文件上传下载
2019/10/06 Python
python中time库的实例使用方法
2019/10/31 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
工程监理应届生求职信
2013/11/09 职场文书
优秀体育委员自荐书
2014/01/31 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
安全环保演讲稿
2014/08/28 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
稽核岗位职责
2015/02/10 职场文书
个人承诺书格式范文
2015/04/29 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android