Ajax从php中得不到任何回报

时间:2010-04-24 21:40:56

标签: php jquery ajax apache firefox

Jquery我没有警报和firefox我没有任何回报。代码工作之前,数据库查询也有成功的记录。我错过了什么???

  1. Jquery ajax。
  2. 
        $.ajax({
          type    : "POST",
          url     : "include/add_edit_del.php?model=teksten_display",
          data    : "oper=search&ids=" + _id ,
          dataType: "json",
          success : function(msg){
           alert(msg);
          }
         });
    
    1. PHP
    2. 
             case 'teksten_display':
                 $id = $_REQUEST['ids'];           
                 $res =  $_dclass->_query_sql(
                     "select a,b,id,wat,c,d from tb1 where id='" . $id . "'" );
                 $_rows = array();
      
                 while ( $rows = mysql_fetch_array ($res) ) { $_rows = $rows; }
         //header('Cache-Control: no-cache, must-revalidate');
         //header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
         header('Content-type: application/json');
      
                 echo utf8_encode( json_encode($_rows) ) ;
                 //echo json_encode($_rows);
                 //var_dump($_rows);
                 //print_r ($res);
      
                 break;
      
      1. Firefox响应/请求标题
      2. 
        Date Sat, 24 Apr 2010 22:34:55 GMT
        Server Apache/2.2.3 (CentOS)
        X-Powered-By PHP/5.1.6
        Expires Thu, 19 Nov 1981 08:52:00 GMT
        Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
        Pragma no-cache
        Content-Length 0
        Connection close
        Content-Type application/json
        
        Host www.xxxx.be
        User-Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.5.9-2.fc12 Firefox/3.5.9
        Accept application/json, text/javascript, */*
        Accept-Language en-us,en;q=0.5
        Accept-Encoding gzip,deflate
        Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
        Keep-Alive 300
        Connection keep-alive
        Content-Type application/x-www-form-urlencoded; charset=UTF-8
        X-Requested-With XMLHttpRequest
        Referer http://www.xxxx.be/xxxxx
        Content-Length 17
        Cookie csdb=2; codb=5; csdbb=1; codca=1.4; csdca=3; PHPSESSID=benunvkpecqh3pmd8oep5b55t7; CAKEPHP=3t7hrlc89emvg1hfsc45gs2bl2
        

3 个答案:

答案 0 :(得分:1)

$ .ajax成功回调返回你想要它返回的任何内容,在这种情况下你返回一个json OBJECT,看起来好像你只想显示一条成功消息。你的msg变量实际上包含一个对象,而不是“成功!” string - 为了显示你需要使用的msg ['variable_from_json_object'],它将显示该值。

我会看到的东西,如果不是你的jquery在你调用utf8_encode时导致问题,这个方法是否可以转换整个json对象,或者是否需要在每个项目运行之前运行它去json? json remember是一个对象,它不是一个字符串。

您可以查看this以更好地了解如何将数组转换为uft8,然后转换为json。

echo json_encode(utf8_encode_array($_rows));

使用链接中提供的方法可能..

最后,为了确保您的json成功创建,请访问您称为ajax的网址,作为普通网页: include / add_edit_del.php?model = teksten_display& oper = search& ids = “+ _id。当然会将_id替换为仅用于测试的值。我认为您可能会在此处看到一个问题,因为您的网址不应包含查询参数,如果您要使用它们,它们都应该在您的数据中那个参数..我希望有以下任何一种:

  $.ajax({
  type    : "POST",
  url     : "include/add_edit_del.php",
  data    : "model=teksten_display&oper=search&ids=" + _id,
  dataType: "json",
  success : function(msg){
   alert(msg);
  }
 });

或者根本不使用数据参数并将其塞进网址,因为url期望没有查询参数(?var = foo),当它看到数据时它会用数据中提供的值替换url参数

  $.ajax({
  type    : "POST",
  url     : "include/add_edit_del.php?model=teksten_display&oper=search&ids=" + _id",
  dataType: "json",
  success : function(msg){
   alert(msg);
  }
 });
祝你好运!

答案 1 :(得分:0)

将此行添加到ajax,查看是否有任何错误

success : function(msg){
       alert(msg);
},
error : function(request, status, error) {
    if(status == 'parsererror' || status == 'error') {
        alert(error);
    }
}

答案 2 :(得分:0)

无论如何,我在我的方框中得到了它的 CentOS 5.4 : [root @ www include] #php -version PHP 5.1.6(cli)(内置:2010年1月13日17:09:42) 版权所有(c)1997-2006 PHP小组 Zend Engine v2.1.0,版权所有(c)1998-2006 Zend Technologies [root @ www include]#

解决方案:http://gargiullo.com/tag/json_encode/