为什么PHP程序明明有错,但ajax调用这个程序却可以成功的正常返回,并调用更新函数,有没有什么办法查看ajax调用PHP后,PHP里面的执行过程啊??
今天被这个问题搞死了,整整搞了一天,请牛人帮帮看一下,感激不尽!

解决方案 »

  1.   

    <script>
    /**
    * 初始化一个xmlhttp对象
    */
    var first = true;
    function InitAjax()
    {
     var ajax=false; 
     try { 
      ajax = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (E) { 
       ajax = false; 
      } 
     }
     if (!ajax && typeof XMLHttpRequest!='undefined') { 
      ajax = new XMLHttpRequest(); 
     } 
     return ajax;


    function modifyData(tid,subject)
    {
     //需要进行Ajax的URL地址
     var url = "updateData.php";
     //获取新闻显示层的位置
    //  var show = document.getElementById("newtitle"); 
     //实例化Ajax对象
     var ajax = InitAjax();
     //使用Get方式进行请求
     ajax.open("POST", url, true); 
    //   ajax.setrequestheader("content-length",name.length);//post提交设置项
      ajax.setrequestheader("content-type","application/x-www-form-urlencoded");//post提交设置项
     //获取执行状态
     ajax.onreadystatechange = function() { 
      //如果执行是状态正常,那么就把返回的内容赋值给上面指定的层
      if (ajax.readyState == 4 && ajax.status == 200) { 
    alert(tid+subject);
    var title = document.getElementById("thread_"+tid);
       var newlink = title.innerHTML.split("<BR>");
    title.innerHTML = newlink[0];
    first = true;
      } 
     }
     ajax.send("tid="+tid+"&subject="+subject); 
    }
    </script>
    以下是updateData.PHP的代码:
    <?php
    function addslashesArray(&$array)
    {
    is_array($array)
    ? array_walk($array,'addslashesArray')
    : $array = addslashes($array);   ///加入反斜杠
    }
    if(!get_magic_quotes_gpc())
    {       #  若php.ini 中 magic_quotes_gpc=off
    addslashesArray($_GET);
    addslashesArray($_POST);
    addslashesArray($_COOKIE);
    addslashesArray($_FILES);
    addslashesArray($_REQUEST);
    // print_R($_POST);
    }
    $tid = intval($_POST["tid"]);
    $subject = $_POST["subject"];
    require_once '../../include/common.inc.php';
    $result = $db->query("UPDATE {$tablepre}threads SET subject='".$subject."' WHERE tid='$tid'");
    echo "执行结果:".$result;
    print_R($subject);
    echo "aaaa".$subject;
    ?>
      

  2.   

    装个Firebug或者HttpWatch,不然直接访问该页面看报什么错误
      

  3.   

    二楼说的也有可能,不过,我说的程序有错,是我自己后面为了测试把它改错了,但是,正确的时候,我直接执行这段PHP程序就可以修改数据库,而通过AJAX就是没办法修改到数据库里的信息。郁闷啊!!!
      

  4.   

    通过AJAX调用完全正常,什么错误都没报,但是数据库里的信息就是不改!!
    我头快炸了。
      

  5.   

    6楼说的有道理,我原来也是这么想的,不过,我也把AJAX那段改成GET,POST都试过了,都是不成功,在JS这边alert出来,这些信息都对,但是,到PHP那边,我就没办法测试了,所以不知道应该怎么做,卡在这里了,是不是我的这段AJAX写的不对啊?能不能帮忙看一下,我原来就是用这个修改另一个地方就可以。这次怎么改也不行!