如何调试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 信息,通过“伪造”相应信息达到 ...
随机推荐
- AtCoder Grand Contest 020 D - Min Max Repetition
q<=1000个询问,每次问a,b,c,d:f(a,b)表示含a个A,b个B的字符串中,连续A或连续B最小的串中,字典序最小的一个串,输出这个串的c到d位.a,b<=5e8,d-c+1&l ...
- 2015山东信息学夏令营 Day5T3 路径
问题描述: 给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1号点走到n号点的最小费用. 输入: 第一行包含一个正整数n,表示点数. 接下来 ...
- Spring3.2+mybatis3.2+Struts2.3整合配置文件大全
0.配置文件目录 1.Spring配置 applicationContext-dao.xml <?xml version="1.0" encoding="UTF-8 ...
- AtCoder Grand Contest 012 D Colorful Balls
题意: 有N个球排成一行,第i个球颜色为ci, 权为wi, 如果两个同色球权值和 <= X 则它们可以交换: 如果两个异色球权值和 <= Y 则它们可以交换:不限制交换次数,求能到达的颜色 ...
- Java并发包——线程池
Java并发包——线程池 摘要:本文主要学习了Java并发包中的线程池. 部分内容来自以下博客: https://www.cnblogs.com/dolphin0520/p/3932921.html ...
- 04-js的运算符
<html> <head> <title>js的运算符学习</title> <meta charset="UTF-8"/> ...
- Ubuntu 16.04硬盘有坏道,开机显示blk_update_request:I/0 error
可以尝试以下方式解决: 1.检查坏道(效果明显,但是比较慢,检查出来并没有什么用,只是知道有坏块) sudo badblocks -s -v -o /root/bb.log /dev/sda1 2.快 ...
- 条款三:尽量用new和delete而不用malloc和free
malloc和free(及其变体)会产生问题的原因在于它们太简单:他们不知道构造函数和析构函数. 假设用两种方法给一个包含10个string对象的数组分配空间,一个用malloc,另一个用new: s ...
- 人脸识别“Neural Aggregation Network for Video Face Recognition”
人脸识别的新方法.主要对视频进行处理.使用CNN提取视频中多帧人像的特征,之后使用聚合模块对全部帧的特征向量进行学习累积.实验结果表明这样的方法比手工设计的方法如平均池化要好.人脸识别结构例如以下图所 ...
- MYSQL入库常用PHP函数
addslashes addslashes() 函数在指定的预定义字符前添加反斜杠.这些字符是单引号(').双引号(").反斜线(\)与NUL(NULL字符). stripslash ...