Ajax php geri hiçbir şey alır

3 Cevap php

JQuery i uyarı ve firefox i karşılığında bir şey yok yok. Kod daha önce çalışıyordu, veritabanı sorgu da başarılı kayıtları var. I ne eksik??

  1. Jquery ajax.

    $.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

       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 yanıt / istek başlığı

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 Cevap

Anyway, i got it, its CentOS 5.4, in my box: [root@www include]# php -version PHP 5.1.6 (cli) (built: Jan 13 2010 17:09:42) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies [root@www include]#

Çözüm: http://gargiullo.com/tag/json_encode/

$. Eğer bu durumda bir JSON nesnesi dönen ve sadece başarı mesajı görüntülemek için bekliyoruz gibi görünür, geri dönmek istersen ajax başarı geri döner. Sizin msg değişken aslında bir nesne değil, bir içeriyor "Başarı!" dize - Eğer bu değeri gösterecektir msg ['variable_from_json_object'] kullanmak gerekir bir şey göstermek için.

Ben utf8_encode için çağrı sorunlara neden onun değil jquery halinde de bakmak istiyorum Birşeyler, bu yöntem işe bütün bir json nesneyi dönüştürmek için yapar, ya da onun json dönüştürülür ÖNCE her öğe üzerinde çalıştırmak gerekiyor? json hatırlıyorum bir nesne, onun değil bir dizedir.

Eğer dizi daha sonra json için, UFT8 dönüştürebilirsiniz nasıl daha iyi bir fikir elde etmek için this görünebilir.

echo json_encode(utf8_encode_array($_rows));

muhtemelen renkli verilen yöntemle ..

Son olarak, emin json başarıyla yaratılıyor yapmak url ziyaret etmek için normal bir sayfa olarak, ajax gibi çağrı vardır: include/add_edit_del.php?model=teksten_display&oper=search&ids=" + _id. Elbette sadece test için bir değer ile _ID değiştirilmesi. Ben senin url sorgu parametrelerini, gerektiği gibi burada bir sorun görebilirsiniz olduğunu düşünüyorum, hepsi bu parametreyi kullanmak için gidiyoruz eğer veri olabilir .. ben aşağıdakilerden birini bir şey beklediğiniz olmalıdır:

  $.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 NO sorgu parametreleri (? Var = foo) bekliyoruz çünkü VEYA bu verileri gördüğünde veri içinde verilen değerler ile url parametreleri değiştirir, tüm veri parametresini kullanarak ve url içine tıkınma değil

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

İyi şanslar!

herhangi bir hata varsa sizin için bu satırı eklemek ajax, bkz

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