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 相关文章推荐
支持php4、php5的mysql数据库操作类
Jan 10 PHP
PHP排序算法的复习和总结
Feb 15 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
PHP中常用的输出函数总结
Sep 22 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
谈谈 PHP7新增功能
Dec 16 PHP
PHP生成图像验证码的方法小结(2种方法)
Jul 18 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 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版 汉字转码的实现详解
2013/06/09 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php画图实例
2014/11/05 PHP
php实现的通用图片处理类
2015/03/24 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
jquery时间下拉框小例子
2013/04/15 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python计算方程式根的方法
2015/05/07 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
分享vim python缩进等一些配置
2018/07/02 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
Python assert语句的简单使用示例
2019/07/28 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
园林施工员岗位职责
2013/12/11 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
英语分层教学实施方案
2014/06/15 职场文书
财务总监岗位职责
2015/02/03 职场文书
员工加薪申请报告
2015/05/15 职场文书
毕业证明书
2015/06/19 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js