如何调试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 信息,通过“伪造”相应信息达到 ...
随机推荐
- Codeforces Round #482 (Div. 2) C Kuro and Walking Route
C. Kuro and Walking Route time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- 树形DP 树的最小支配集,最小点覆盖与最大独立集
最小支配集: 从V中选取尽量少的点组成一个集合,让V中剩余的点都与取出来的点有边相连. (点) 最小点覆盖: 从V中选取尽量少的点组成一个集合V1,让所有边(u,v)中要么u属于V1,要么v属于V1 ...
- Delphi:校验手机号及身份证号
//校验手机号 function IsMobileNumber( num:string ):boolean; begin Result:=False; if length( tr ...
- MongoDB小结09 - update【定位修改器】
如果要操作数组中的值,可以用值在数组中的位置当做参数来删除 db.user.update({"name":"codingwhy.com"},{"$se ...
- Django学习系列之captcha 验证码插件
安装部署 安装captcha pip3. install django-simple-captcha== settings.py中引入captcha INSTALLED_APPS = [ 'djang ...
- HDU 5319 Painter(枚举)
Painter Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Su ...
- 加入收藏BUG改善
<script type="text/javascript"> function add_favorite(a, title, url) { url = url || ...
- iOS xcode6最新提交app方法
依照之前方式打包.打包成功后.直接submit提交AppStore.然后再选择build,假设上传成功,但在build选择上未出现,你能够耐心等待.有可能要等上一天,然后选择相应的build,直接提交 ...
- Android Java包各种功能简述
开发Android应用程序基本上使用的都是Java语言. 那么要想灵活的应用这一系统,就应当熟悉当中的Android Java包的各种功能. 一般的JAVA应用中.假设需用引用基础类库,通常须要使用例 ...
- 2016/1/25 多线程 作业 方法一 继承Thread 方法二 实现Runnable 多线程笔记
/* * 1,尝试定义一个继承Thread类的类,并覆盖run()方法, * 在run()方法中每隔100毫秒打印一句话.*/ package Stream; //方法一 继承Thread 实现多线程 ...