2014-03-26 44 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