其实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>";
- }
- ?>