其实ajax非常简单,但有很多地方需要注意,稍有不慎就有可能出错,编写程序还需大胆心细,不气不馁。
首先要注意几点:
1、 ajax 的dataType类型如果是json 则必须转成json. 如:echo json_encode($arr);
2、POST 获值时,必须用转义类进行转义,不然遇到双引号或是 and select 之类的就会很危险,这个要特别注意。
(转义符类写在public.php)
例:直接 $uname = $_POST['uname']; 这样是很危险的。必须用public类里的转义函数进行封装。
像这样:$uname= gpc_string($_POST['uname']);
3、$ajax 里的url 最好写绝对路径。
4、PHP 里 有个 $arr['success'] 的封装类,接收 AJAX 里success 的值。ps:接收后需转成json型。
例:$selphone ="select * from custormer where phone = '$phone'";
$result = mysql_query($selphone);
$row = mysql_num_rows($result);
$arr['success'] = $row ?1 : 0;
echo json_encode($arr); //转成json数据
下面是具体代码,大家看实例,很容易明白工作原理。
html部分,文件名称reg.html
折叠XML/HTML 代码
- <html xmlns="http://www.w3.org/1999/xhtml">
 - <head>
 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 - <script src="js/jquery-1.9.1.js" type="text/javascript"></script>
 - <script>
 - $(function(){
 - $("#phone").change(function(){
 - var phone = $(this).val();
 - $.ajax({
 - type:"post",
 - url:"http://127.0.0.1/apply/logic/reg.php",
 - dataType:"json",
 - data:{"phone":phone},
 - success: function(josn){
 - if(josn.success ==0){
 - $("#phonetext").text("恭喜你可以注册");
 - return true;
 - }else{
 - $("#phonetext").text("手机已存在不可注册");
 - return false;
 - }
 - }
 - });
 - });
 - });
 - </script>
 - <title>测试版</title>
 - </head>
 - <body>
 - <div id="main">
 - <form action="logic/reg.php" method="post" name="form1" id="form1">
 - 姓名:
 - <input type="text" name="uname" id="uname"/>
 - <span></span>
 - <p></p>
 - </br>
 - 公司:
 - <input type="text" name="company" id="company"/>
 - <span></span>
 - <p></p>
 - </br>
 - 职位:
 - <input type="text" name="position" id="position"/>
 - <span></span>
 - <p></p>
 - </br>
 - 手机:
 - <input type="text" name="phone" id="phone"/>
 - <span id="phonetext"></span>
 - <p></p>
 - </br>
 - <input type="submit" value="提交" />
 - </form>
 - </div>
 - </body>
 - </html>
 
php部分,config.php
折叠PHP 代码
- <?php
 - $con = mysql_connect("127.0.0.1:3306","root","");
 - if(!$con){
 - die('connect not count' .mysql_error());
 - }
 - mysql_set_charset('utf8',$con);
 - $mydb = mysql_select_db("apply",$con);
 - ?>
 
public.php
折叠PHP 代码
- <?php
 - /**
 - *function字符转义
 - *return string
 - **/
 - function gpc_string($str){
 - return (!get_magic_quotes_gpc()) ? mysql_real_escape_string(trim($str)) : $str;
 - }
 - ?>
 
reg.php
折叠PHP 代码
- <?php
 - require_once(dirname(_FILE_)."/config.php"); //导入配置文件
 - require_once(dirname(_FILE_)."/public.php"); //导入公共文件(转义符)
 - $uname= gpc_string($_POST[ 'uname' ]);
 - $company= gpc_string($_POST['company']);
 - $position= gpc_string($_POST['position']);
 - $phone= gpc_string($_POST['phone']);
 - $selphone ="select * from custormer where phone = '$phone' ";
 - $result = mysql_query($selphone);
 - $row = mysql_num_rows($result);
 - $arr['success'] = $row ? 1 : 0;
 - echo json_encode($arr); //转成json数据
 - if($uname !=null && $company !=null && $position !=null && $phone != null){
 - $insql="INSERT INTO `apply`.`custormer` (`id`, `uname`, `company`, `position`, `phone`, `deal`, `sign`, `whosnumber`) VALUES (NULL, '$uname', '$company', '$position', '$phone', '0', '0', NULL)";
 - $rn = mysql_query($insql);
 - $url = "http://127.0.0.1/apply/reg.html";
 - echo "<script language='javascript' type='text/javascript'>";
 - echo "window.location.href= '$url' ";
 - echo "</script>";
 - }
 - ?>
 

