Ajax+PHP 边学边练之四 表单
2015-01-24信息快讯网
通过上一篇文章已经了解到如何利用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"); ?>
源代码下载
PHP 获取远程网页内容的代码(fopen,curl已测)
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
php写的简易聊天室代码
php结合表单实现一些简单功能的例子
PHP中对用户身份认证实现两种方法
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
用PHP的超级变量$_GET获取HTML表单(Form) 数据
php中通过Ajax如何实现异步文件上传的代码实例
PHP中限制IP段访问、禁止IP提交表单的代码
php表单提交问题的解决方法
Discuz Uchome ajaxpost小技巧
php的ajax框架xajax入门与试用介绍
ajax实现无刷新分页(php)
基于asp+ajax和数据库驱动的二级联动菜单
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
PHP Session变量不能传送到下一页的解决方法
完美解决PHP中文乱码
php google或baidu分页代码
php 接口类与抽象类的实际作用
Ajax PHP 边学边练 之三 数据库
Ajax+PHP 边学边练 之二 实例
ajax php 实现写入数据库
PHP 开源AJAX框架14种
PHP form 表单传参明细研究
php 多个submit提交表单 处理方法
AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
php 表单数据的获取代码
php 表单验证实现代码
防止MySQL注入或HTML表单滥用的PHP程序