zoukankan      html  css  js  c++  java
  • 如何调试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:wamp64wwwpracticeex11_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

  • 相关阅读:
    SWT中如何居中显示?
    项目一 默认构造函数和带参数的构造函数
    解决ubuntu中java1.6显示中文乱码问题
    网络程序为什么要处理SIGPIPE
    SQL 数据类型大全
    poj1275 差分约束
    Oracle分组
    Android利用ViewPager实现滑动广告板
    扩展spring mvc的拦截器,实现AOP的环绕增加效果
    [Ext.Net]GridPanel之存储过程分页Sql版本
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6781799.html
Copyright © 2011-2022 走看看