详解php+ajax开发的注意事项_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:解析用PHP操作MySql数据库
?php /* *mysql数据库分页类 *@packagepagelist *@authoryytcpt(无影) *@version2008-03-27 *@copyrigthhttp://www.d5s.cn/ */ /* *分页样式 .page{float:left;font:11pxArial,Helvetica,sans-serif;padding:6px0;margin:0px10%;margin-top:10px;} .pagea,.pa


1.注意几个编码地方

1.1表单所在的网页的:meta

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

1.2XMLHTTPRequest GET的编码

httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

此处设置不对!responseText会返回empty(没有内容),如果您有FireFox并装有FireBug组件的话,点击状态栏的绿色箭头打开控件面板(非OS的,FireBug的),选中Console会看到Response选项是:

Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation ’=

当然如果是连接数据库的话也可能跟下面的(1.4)有关系.

1.3ajax GET请求的页面(.php)header

header("Content-Type:text/html;charset=UTF-8");

1.4数据连接的编码

mysql_query("SET CHARACTER SET UTF8");

如果你的数据库是GBK的或其它的字符集,为了统一编码还要与以上三个统一起来.下面我的示例用的数据库也是GBK,从昨天开始我一起把它设成:

mysql_query("SET CHARACTER SET GBK");

可还是有时发现会返回空(empty 我用的是ResponseText),千万不要写成UTF-8噢,数据库的字符集是没有中间的"-"

2.如果还是返回空或无效的值

例如:

a.html中有表单,a用XMLHTTPRequest和b.php通讯.

首先要保证b.php可以正确运行,例b.php?param=value打印出来的是你期望的值

如果a.html打印b.php返回的结果(ajax)与上面的(单独运行b.php)执行结果有出入.可以删除b.php中的空行试试!我想应该不会出现这种情况,但我有几次作demo删除后和删除前确实有出入

3.下面是朋友发给我的一个示例!我修改完的源码

表单页:

分享:解析用PHP操作MySql数据库(DB类)
?php /* *mysql数据库DB类 *@packagedb *@authoryytcpt(无影) *@version2008-03-27 *@copyrigthhttp://www.d5s.cn/ */ classdb{ varconnection_id=; varpconnect=0; varshutdown_queries=array(); varqueries=array(); varquery_id=; varquery_count=0; v

共4页上一页1234下一页
来源:模板无忧//所属分类:PHP教程/更新时间:2010-02-16
相关PHP教程