如何调试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 信息,通过“伪造”相应信息达到 ...
随机推荐
- int *ptr=(int *)(&a+1)问题的探讨
从网络上看到这样一道有意思的题目,是关于数组与指针的问题,描述如下: main() { ]={,,,,}; ); printf(),*(ptr-)); } 输出为:2,5 请解释以上代码的输出结果. ...
- gradle 安装及设置本地仓库地址
进入地址:http://services.gradle.org/ 下载-bin.zip 解压到自己指定的目录. 配置环境变量 GRADLE_HOME gradle的根目录. 在path 中 添加 % ...
- Builder设计模式
Builder模式,又称生成器或构建者模式,属于对象创建型模式,侧重于一步一步的构建复杂对象,只有在构建完成后才会返回生成的对象.Builder模式将一个复杂对象的构建与它的表示分离,使得同样的构建过 ...
- pkill有的时候并不能杀死进程?
pkill的用法:http://man.linuxde.net/pkill 根据进程命令行,杀死进程 如下intellij.go代码为一个代理服务器,把本地请求转向一个代理 package main ...
- 表单验证的完美解决方案Validform
具体使用方法参考官网介绍吧,相当的简单: 文档:http://validform.rjboy.cn/document.html demo:http://validform.rjboy.cn/demo. ...
- vuejs快速入门
参考链接:http://www.cnblogs.com/keepfool/p/5619070.html
- Java学习笔记----你可能不知道那些知识,对象复制与引用
1.private ,protected,static不能用来修饰interface. 2.java在处理基本数据类型(比如int ,char,double)时,都是採用按值传递的方式运行.除此之外的 ...
- BZOJ 1037: [ZJOI2008]生日聚会Party 四维DP
1037: [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1650 Solved: 971[Submit][ ...
- libXdmcp.so.6
Traceback (most recent call last): File "/data/xiaole_dl_img/product.v.one.banner.fixedperiod.g ...
- 下载、编译、运行android 7.1系统(ubuntu 16.0.4)【转】
本文转载自:http://blog.csdn.net/andywuchuanlong/article/details/53977710