当前位置: 首页 > news >正文

开发笔记|PHP+AJAX前后端交互调试的关键注意事项

由于ajax调试起来非常麻烦,所以我们应该把前后端分开测试,代码如下:

后端代码:(comentbyajax.php

<?php
require_once './dbcon.php';
set_time_limit(0);
//echo json_encode(array('content'=>'aaaaaa'));exit; ①
$rec = $_COOKIE['username'];
$sql = "select * from msg where rec='$rec' and isread=0 limit 1";//防止取到多条数据没能及时显示
//echo json_encode(array('content'=>$sql));exit;②
while (true){$rs = mysql_query($sql, $conn);    $row = mysql_fetch_assoc($rs, $conn);    //注意:此处特意写错,正确的为mysql_fetch_assoc($rs)③if(!empty($row)){echo json_encode($row);break;}sleep(1);
}
?>

 

前端代码:(custom.php

 

<?php
if(empty($_COOKIE['username']))
setcookie('username', 'user'.rand(10000,99999));
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>在线用户端</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type='text/javascript'>
$(function(){//长轮询(注:该函数在页面加载完成后自动执行)var setting = {url:'comentbyajax.php',dataType:'json',type:'post',success:function(res){④var cont = '<p>客服对你说:<br/>'+res.content+'</p><br/>';$('#msgzone').append(cont);}};$.ajax(setting);
});function xunwen(){var cont = $('textarea:first').val();$.post('sendmsg.php',{rec:'admin',content:cont},function(res){if(res == 'ok'){var wen = '<p>你对客服说:<br/>'+cont+'</p>';$('#msgzone').append(wen);}});
}
</script>
<style type="text/css">
#msgzone{border: 1px solid gray;width:400px;height:200px;overflow:scroll;
}
</style>
</head>
<body><h2>coment反向ajax技术---在线客服系统---之用户端</h2><h3>原理:ajax+长连接+轮询(长轮询),获取实时内容,并更新到父页面</h3><div id='msgzone'></div><!-- 聊天信息区域 --><textarea></textarea><input type='button' value='咨问' onclick='xunwen();'/>
</body>
</html>

 

问题描述:执行custom.php文件时出现comentbyajax.php不能正确返回信息给custom.php

排查此时排查的过程我们要分步骤查找(即分别在comentbyajax.phpcustom.php查找)

comentbyajax.php文件中添加echo json_encode(array('content'=>'aaaaaa'));exit;调试语句保存(如①处所示),然后执行custom.php文件,看④是否能正确输出信息,如果能则表明custom.php写法正确,接下来重点排查comentbyajax.php,怀疑是否在拼接sql字符串中出错,然后再添加echo json_encode(array('content'=>$sql));exit;调试语句保存(如②处所示),然后拷贝④处得到的信息并粘贴到mysql命令窗口执行,如图所示:

图片1

发现语句正确执行并返回信息,干脆狠下心来单独执行comentbyajax.php文件,所以将代码修改为:

 

<?php
require_once './dbcon.php';
set_time_limit(0);//echo json_encode(array('content'=>'aaaaaa'));exit;

$rec = $_COOKIE['username'];
$sql = "select * from msg where rec='$rec' and isread=0 limit 1";//防止取到多条数据没能及时显示
//echo json_encode(array('content'=>$sql));exit;
//while (true){$rs = mysql_query($sql, $conn);    $row = mysql_fetch_assoc($rs, $conn);    if(!empty($row)){echo json_encode($row);//break;
    }sleep(1);
//}
?>

 

再去执行它,发现输出错误信息:

图片2

此时很明显mysql_fetch_assoc()写错了。

解决:由于comentbyajax.php文件中的处错将mysql_fetch_assoc($rs)写成了mysql_fetch_assoc($rs, $conn),该语句造成了php执行时出错的同时也没有返回任何信息给

 

http://www.jsqmd.com/news/34347/

相关文章:

  • jenkins使用github的项目(springboot)进行构建配置例子
  • 28335中断ID
  • 2025年耐用的高精度内圆磨床订制厂家权威推荐榜单:比较好的高精度内圆磨床/好的高精度内圆磨床/靠谱的高精度内圆磨床源头厂家精选
  • 工业主板VS商用主板:五大核心差异,选对才能高效运行
  • 完整教程:Hadoop面试题及详细答案 110题 (71-85)-- 集群部署与运维
  • Codeforces Global Round 30 (div.1 + div.2) A~E 题解
  • 2025 年最新推荐!国内胶粘剂源头厂家优质品牌排行榜:聚焦实力厂商,助力企业精准选品水性胶粘剂 / 电子胶粘剂 / 注塑胶粘剂公司推荐
  • 工业互联网高级计划排程(APS):智能制造时代的生产协同核心引擎
  • Ubuntu VNC传输文件
  • 【IEEE出版|往届均已完成EI检索】第四届地理信息与遥感技术国际学术会议(GIRST 2025)
  • Studio 3T 2025.19 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
  • vue3+ts 简单封装axios:实现错误重试、重复请求取消、手动取消
  • 2025 年压敏胶源头厂家最新推荐榜单:覆盖多类型产品且经协会测评的权威甄选指南耐高温压敏胶/环保压敏胶/水性压敏胶/医用压敏胶公司推荐
  • window.open()与session
  • 2025年安全网与遮阳网厂家综合实力Top5
  • 2025年热门的安全检测检验公司榜单
  • 2025年安全检测检验公司排行榜:前十名权威推荐与行业洞察
  • 2025年有实力的安全检测检验公司热门排行前十强榜单
  • 2025年11月四川护栏厂家排名榜:五家实力对比与选购指南
  • 2025年11月四川护栏厂家推荐榜:五强产能对比与口碑评价全解析
  • 同城洗车小程序系统:一站式洗车服务解决方案
  • 2025 年物业管理公司服务口碑排行榜权威发布:五标认证企业与精细化服务实力最新推荐政府机构/写字楼/商场/园区物业管理公司服务推荐
  • Tauri跨平台开发:Rust后端+React前端桌面应用实践 - 教程
  • 魔方报名缴费系统:高效便捷的全流程报名解决方案
  • 2025 物业托管公司最新推荐榜:权威测评出炉,,多业态服务实力甄选园区/银行/剧院/商业物业托管公司服务推荐
  • 打破孤立的隐形枷锁:AI智能守护如何拯救校园中的“边缘”学生
  • 文字识别
  • 知识付费网盘变现微信小程序系统:资源变现与流量裂变解决方案
  • 热血传奇,经典重现,完美传奇游戏详细图文架设教程
  • STM32和ESP32有什么区别?如何选开发板?资深工程师学习路线建议!