2014-03-26 40 views
0

我无法获得ajax运行,因为测试字符串不显示在html中。 服务器工作正常,jQuery是最新的。 该代码似乎能够注册点击并阻止默认行为,但它并未完成ajax调用。Ajax jQuery调用没有完成并返回字符串

//// index.php //// 

<a id='id' href=''>Test</a> 

<script> 
$(document).ready(function() 
{ 
    $('#id').click(function(event) 
    { 
     event.preventDefault(); 
     $.ajax(
     {          
      type:'POST', 
      url:'ajax.php', 
      data:'test', 
      dataType:'json', 
      success:function(d) 
      { 
       $('#id').html(d.msg); 
      } 
     }); 
    }); 
}); 
</script> 

//// ajax.php //// 

<?php 

class ajax 
{ 
    function test() 
    { 

     $t = array(); 
     $t['msg'] = 'Test'; 
     return json_encode($t); 
    } 
} 

$ajax = new ajax; 
echo $ajax->test(); 

?> 
+0

我认为问题出在你的函数test()中:你返回一个空数组$ t。所以改变第二行$ return ['msg'] ='Test';到$ t ['msg'] ='测试';.假设一般的Ajax调用可以正常工作,否则有关ajax调用返回的更多信息会很好。 – Robin

+0

我做了一个关于那个部分的编辑,我错了。你能否指定你认为有用的信息?以上是ajax.php中的所有代码。 – aaaaaa4422

+0

你有没有在浏览器中调用php文件本身?它会返回正确的结果吗?如果是的话,在JavaScript中调用ajax函数时显示浏览器的控制台? – Robin

回答

0

问题出在url:'ajax.php',。我输入了错误的文件路径,尽管检查了很多次...

0
<?php 

class ajax 
{ 
    function test() 
    { 

     $t = array(); 
     $t['msg'] = 'Test'; 
     return json_encode($t); 
    } 
} 

$ajax = new ajax; 
echo $ajax->test(); 

?> 

你返回一个空数组,因为你没有任何价值尽显你的$ T阵列。改变这一点,它应该工作得很好。否则,请尝试在浏览器中调用您的php并查看它返回的内容。

+0

php文件调用罚款:{“msg”:“Test”} – aaaaaa4422

+0

当您执行JS代码时,浏览器的控制台会说什么? – Robin