为什么我无法访问JSon数据?

时间:2015-06-07 20:51:00

标签: php ajax json

我试图使用ajax获取变量的计数,但每次都会使打印失败

这是我测试时完美运行的php文件

 <?php 

$conn= mysqli_connect("localhost","root","") or die ("could not connect to mysql"); 

mysqli_select_db($conn,"bdpfe") or die ("no database");   
$rech=$_GET['q'];


$sql=mysqli_query($conn,"select count(id_com) as nbr from commentaire where  id_pub like '".$rech."' "); 

$response = array();
$nbrs = array();
$result=$sql;

while($row=mysqli_fetch_array($result)) 
{ 
$nbr=$row['nbr'];

$nbrs[] = array('nbr'=>$nbr);
 } 

 $response['nbrs'] = $nbrs;

 echo "mycallbackcom(".json_encode($response).")";

 ?> 

这是使用jsonp

的ajax调用
 (function  getnbr() {
$.ajax({
type : 'GET', 
url : 'http://127.0.0.1:800/test/count_com.php?callback=?&q='+$('#idpub').val() , 
jsonpCallback: 'mycallbackcom',
dataType: 'jsonp',
contentType: "application/json",
success: function (data) {
 alert("succes");
},
error: function () {

   alert("fail");
       }
  });

})(jQuery);

现在回调函数为空:

function mycallbackcom()
{}

每次打印都会失败。

2 个答案:

答案 0 :(得分:3)

尝试仅返回JSON。您已将此指定为预期的返回dataType。

echo json_encode($response);

然后处理回复:

 (function getnbr() {
     $.ajax({
        type : 'GET', 
        url : 'http://127.0.0.1:800/test/count_com.php?callback=?&q='+$('#idpub').val() , 
        jsonpCallback: 'mycallbackcom',
        dataType: 'jsonp',
        contentType: "application/json",
        success: function (data) {
            mycallbackcom(data)
         },
         error: function () {
           alert("fail");    
         }    
  });   
});

答案 1 :(得分:0)

您需要解析$ _GET变量..

$data = json_decode($_GET['q']);

function mycallback($data) {
    //Do something
}

return mycallback($data);