如何调试ajax 和php
###ex11_1_main.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>AJAX Example</title>
<script>
//AJAX初始化函数
function GetXmlHttpObject()
{
var XMLHttp=null;
try
{
XMLHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
XMLHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
XMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return XMLHttp;
}
function cj_query()
{
XMLHttp=GetXmlHttpObject(); //初始化一个XMLHttpRequest对象
//得到学号和课程名文本框中输入的值
var XH=document.getElementById("XH").value;
var KCM=document.getElementById("KCM").value;
var url="EX11_1_process.php"; //服务器端在EX11_1_process.php中处理
url=url+"?XH="+XH+"&KCM="+KCM; //url地址,以GET方式传递
url=url+"&sid="+Math.random(); //添加一个随机数,以防服务器使用缓存的文件
XMLHttp.open("GET",url, true); //以GET方式通过给定的url打开XMLHTTP对象
XMLHttp.send(null); //向服务器发送HTTP请求,请求内容为空
XMLHttp.onreadystatechange = function() //定义响应处理函数
{
if (XMLHttp.readyState==4&&XMLHttp.status==200)
{
//如果请求成功则在CJ文本框中显示EX9_1_process.php传回的信息
document.getElementById("CJ").value=XMLHttp.responseText;
}
}
}
</script>
</head>
<body>
<form action="">
学号:<input type="text" name="XH" size="12">
课程名:<input type="text" name="KCM" size="12">
<input type="button" value="查询" onclick="cj_query();"><br>
成绩:<input type="text" name="CJ" size="12">
</form>
</body>
</html>
###ex11_1_process.php
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
$XH=$_GET['XH']; //取得XH的值
$KCM=$_GET['KCM']; //取得KCM的值
header('Content-Type:text/html;charset=gb2312'); //发送header,将编码设为gb2312
$conn=mysql_connect("localhost","root",""); //连接MySQL服务器
mysql_select_db("PXSCJ",$conn); //选择PXSCJ数据库
//mysql_query("SET NAMES gb2312"); //将字符集设为gb2312
mysql_query("SET NAMES uft8"); //将字符集设为gb2312
//查询成绩的SQL语句
$sql="select 成绩 from CJB where 学号='$XH' and 课程号=(select 课程号 from KCB where 课程名='$KCM')";
$result=mysql_query($sql) or die(mysql_error());;
$row=mysql_fetch_array($result);
if($row)
echo $row['成绩']; //输出课程成绩
else
echo "无此成绩";
?>
######mysql
mysql> select * from cjb;
+------+--------+------+
| 学号 | 课程号 | 成绩 |
+------+--------+------+
| 001 | 001 | 99 |
| 002 | 002 | 69 |
| 004 | 004 | 89 |
+------+--------+------+
3 rows in set (0.00 sec)
mysql> select * from KCB;
+--------+----------+----------+------+------+
| 课程号 | 课程名 | 开课学期 | 学时 | 学分 |
+--------+----------+----------+------+------+
| 001 | 高等数学 | 1 | NULL | 90 |
| 002 | 大学英语 | 1 | NULL | 70 |
| 004 | 说 | 4 | 10 | 10 |
| 12 | gg | 2 | 1 | 10 |
+--------+----------+----------+------+------+
问题,当在main.php 输入学号001, 课程名:高等数学,点击 查询,
成绩 一栏却没有任何输出,也没报错,该如何调试?
xuzuning
本版等级:T12
Blank Blank Blank
更多勋章
#1 得分:0 回复于: 2017-04-22 11:23:03
本帖最后由 xuzuning 于 2017-04-22 11:30:59 编辑
第一步
浏览器地址栏:http://localhost/ex11_1_process.php?XH=001&KCM=高等数学
看看结果是什么
第二步
ex11_1_process.php
PHP code
?
1
2
3
4
<?php
print_r($_GET);
exit;
//你原来的代码
看看输出了什么
如果依然无输出,在表示 ajax 并未提交
本版等级:T1
#6 得分:0 回复于: 2017-04-26 17:30:41
第一步
浏览器地址栏:http://localhost/ex11_1_process.php?XH=001&KCM=高等数学
看看结果是什么
--》 结果正常,有数值输出
第二步
ex11_1_process.php
PHP code
?
1
2
3
4
<?php
print_r($_GET);
exit;
//你原来的代码
看看输出了什么
如果依然无输出,在表示 ajax 并未提交
--> 没有任何输出,应该是ajax 并未提交,请问该如何处理。
非常感谢!
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
本版等级:T1
#7 得分:0 回复于: 2017-04-26 23:30:02
Firefox/sougou web 按F12
#8 得分:0 回复于: 2017-04-27 08:18:22
本帖最后由 xuzuning 于 2017-04-27 08:21:08 编辑
<form action="">
学号:<input type="text" name="XH" id="XH" size="12">
课程名:<input type="text" name="KCM" id="KCM" size="12">
<input type="button" value="查询" onclick="cj_query();"><br>
成绩:<input type="text" name="CJ" id="CJ" size="12">
</form>
feiyun11
本版等级:T1
#9 得分:0 回复于: 2017-04-27 15:39:09
首先感谢各位:
我在执行
1.浏览器地址栏:http://localhost/ex11_1_process.php?XH=001&KCM=高等数学
输出如下:
( ! ) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\wamp64\www\practice\ex11_1_process.php on line 11
Call Stack
# Time Memory Function Location
1 0.0000 240280 {main}( ) ...\ex11_1_process.php:0
2 0.0000 241488 mysql_connect ( ) ...\ex11_1_process.php:11
99
2.在输入ex11_1_process.php 输入001和高等数学 时候,
F12 时候,报错如下:
document.getElementById("CJ").value=XMLHttp.responseText;
Uncaught TypeError: Cannot set property 'value' of null ex11_1_main.php:47XMLHttp.onreadystatechange
更多勋章
#10 得分:0 回复于: 2017-04-27 15:42:21
1、你的 php 版本太高了,已不再支持 php_mysql 扩展了
2、这个问题已在 #8 给出了解决方案
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
feiyun11
本版等级:T1
#12 得分:0 回复于: 2017-04-28 15:22:05
http://localhost/ex11_1_process.php
修改如下:已经ok
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
//print_r($_GET);
//exit;
$XH=$_GET['XH']; //取得XH的值
$KCM=$_GET['KCM']; //取得KCM的值
//header('Content-Type:text/html;charset=gb2312'); //发送header,将编码设为gb2312
header('Content-Type:text/html;charset=uft8'); //发送header,将编码设为uft8
//$conn=mysql_connect("localhost","root",""); //连接MySQL服务器
//$db=new PDO("mysql:host=localhost;dbname=PXSCJ","root","");
$conn= new mysqli('localhost','root','','PXSCJ');
if (mysqli_connect_errno($conn))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_set_charset($conn, "utf8"); //将字符集设为uft8
$sql="select 成绩 from CJB where 学号='$XH' and 课程号=(select 课程号 from KCB where 课程名='$KCM')";
if ($result=mysqli_query($conn,$sql))
{
// Fetch one and one row
while ($row= $result->fetch_object())
{
printf($row->成绩);
}
// Free result set
mysqli_free_result($result);
}
mysqli_close($conn);
?>
http://bbs.csdn.net/topics/392159270?page=1#post-402308012
如何调试ajax 和php的更多相关文章
- VS调试Ajax
VS调试Ajax: 1.ashx在后台处理程序中设定断点 2.触发AJAX 3.F12打开浏览器调试,搜索找到ajax调用的JS,设置断点,在浏览器中单步调试,会自动进入后台处理程序,然后就可以调试后 ...
- 极度郁闷的错误调试——ajax jquery
今天在写一个简单邮件验证的页面时,本来以为二十分钟的事情,却调试了一个半小时,简直郁闷,具体的错误如下: 在页面中,有一段如下的代码: <td colspan="3"> ...
- chrome浏览器,调试详解,调试js、调试php、调试ajax
1.可以看到js报错 2.可以看到php报错 3.可以看到ajax返回的信息,以及报错情况 4.可以看到调用了那些内容以及顺序 5.可以调试js代码 6.可以查看session等等 功能非常之强大. ...
- 调试Ajax调用的利器firebug
这几天我在家里调试PCS的Ajax调用时候发现一个问题就是调试手段太少,一般我会在进入ajax调用前加上一段alert输出变量信息. 比如 alert($("#taskid").v ...
- Chrome 调试AJAX请求返回的JS脚本
有时候会使用AJAX请求加载局部的Html页面,这个时候如果想调试局部页面中的js就比较麻烦,现在暂时发现了两种方法.第一种是在js代码中想要断点的地方加debugger,这样代码执行到此处会进入断点 ...
- chrome调试ajax
network可以查看ajax的信息.非常的实用.
- 火狐浏览器调试ajax异步页面时报错NS_ERROR_UNEXPECTER
第一个直观的结论就是ajax调用出错,如果其他浏览器却调用没报错,而且正常返回值了,那么就是Firefox浏览器的问题了: 如果其他浏览器也没余完全正常执行,而是出现和我上一篇ajax向后台请求数据, ...
- 6_PHP AJAX MYSQL
XAMPP套装软件: 包含Apache.MySQL.PHP等多个开源软件的集合. https://www.apachefriends.org/zh_cn/index.html 监听完整相应消息: Wi ...
- 【转】使用Fiddler进行HTTP断点调试。
这是Fiddler又一强大和实用的工具之一.通过设置断点,Fiddler可以做到: 1. 修改HTTP请求头信息.例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到 ...
随机推荐
- cdq分治入门--BZOJ1492: [NOI2007]货币兑换Cash
n<=100000天,一开始有s块钱,每天股票A价格ai,B价格bi,每天可以做的事情:卖出股票:按A:B=RTi的比例买入股票.问最后的最大收益.股票可以为浮点数,答案保留三位. 用脚指头想想 ...
- 创建Django项目(二)——数据库配置
2013-08-05 20:53:44| 1.数据库配置 举例是用MySQL数据库,首先在settings文件中做配置,如下: DATABASES = { ' ...
- [bzoj2229][Zjoi2011]最小割_网络流_最小割树
最小割 bzoj-2229 Zjoi-2011 题目大意:题目链接. 注释:略. 想法: 在这里给出最小割树的定义. 最小割树啊,就是这样一棵树.一个图的最小割树满足这棵树上任意两点之间的最小值就是原 ...
- Minimum Path Sum(DFS,DP)
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...
- c内存分配(转)
图示 C内存分配 程序代码区 存放函数体的二进制代码 全局数据区 全局变量和静态变量的存储是放在一起的.初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域. ...
- Servlet实现页面重定向
以下内容引用自http://wiki.jikexueyuan.com/project/servlet/page-redirect.html: 当文档移动到一个新的位置时,通常会使用页面重定向,需要将客 ...
- mysql-performance-schema
http://www.fromdual.com/mysql-performance-schema-hints http://www.cnblogs.com/cchust/
- 【.Net 学习系列】-- Windows服务定时运行,判断当前时间是否在配置时间段内
/// <summary> /// 判断程序是否在设置运行时间内 /// </summary> /// <param name="startTime" ...
- easyui north 穿透
穿透layout的north 原理 穿透下面的层只要使该层的position置于fix即可 如果该层还有下一级,则下一层级的position置于absolute即可 示例代码 #menu.active ...
- centos7更新、更新、每天更新、每天自动更新
每一天我们的系统时时刻刻都被凶狠之徒盯着,保持软件在最新的状态是其中一项我们必须做,也很容易做到的工作. 首先我们立即手动更新所有预先安装的软件: yum -y update 跟着设定系统定时自动更新 ...