2015-10-15 30 views
2

編輯:固定_錯字(2次),加頭,仍在記錄100jQuery的基本AJAX GET + PHP回報

當點擊我的JavaScript的按鈕,我射擊這個功能(參數:100)

ajaxManager = new AjaxManager(); 
ajaxManager.requestHexContent(100); 

function AjaxManager(){ 
    this.requestHexContent = function(id){ 
     $.ajax({ 
      type : 'get', 
      url : 'simulator/hexFiller.php', 
      dataType : 'json', 
      data: { 
       gameid: id, 
      }, 
      success : function(ret){ 
       console.log(ret); 
      }, 
      error : function(){ 
       alert("error") 
      } 
     }); 
    }, 
} 

這是我hexFiller.php

<?php 
header('Content-Type: application/json'); 

    $ret; 

    if (isset($_GET["gameid"])){ 
    if ($_GET["gameid"] == 100){ 
     $ret = 200; 
    } 
    else { 
    $ret = "error"; 
} 
} 

echo json_encode($ret); 

?> 

現在,我會希望發生的事情是我的瀏覽器來登錄「200」到控制檯,或「錯誤」。相反,它將「100」記錄到控制檯。

有人可以向我解釋我思想中的根本錯誤嗎?

+0

你是如何調用該函數?點擊時觸發此功能是否可以獲得代碼? –

+0

編輯了代碼,還在requestHexContent() –

+1

的調用中添加了它的工作,這裏工作得很好。此前它出現錯誤並提醒「錯誤」。當我將$ GET更改爲$ _GET時。它返回了200. 還有什麼你想要的?我應該粘貼代碼嗎? –

回答

1

正如在評論中所討論的,工作代碼如下: 我只用$ _GET取代了$ GET。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<script> 
    function AjaxManager() { 
     this.requestHexContent = function (id) { 
      $.ajax({ 
       type: 'get', 
       url: 'simulator/hexFiller.php', 
       dataType: 'json', 
       data: { 
        gameid: id, 
       }, 
       success: function (ret) { 
        console.log(ret); 
       }, 
       error: function() { 
        alert("error") 
       } 
      }); 
     } 
    } 

    ajaxManager = new AjaxManager(); 
    ajaxManager.requestHexContent(100); 
</script> 

hexFiller.php

<?php 
$ret; 

if (isset($_GET["gameid"])) { 
    if ($_GET["gameid"] == 100) { 
     $ret = 200; 
    } else { 
     $ret = "error"; 
    } 
} 

echo json_encode($ret); 
?> 
0

您沒有從PHP文件返回json元素。

在您的PHP文件的頂部添加header('Content-Type: application/json');

另外您的$_GET聲明不正確。

0

爲什麼它返回100,我真的不知道,可能是一個錯誤號。但是你的PHP代碼是錯誤的,它是$ _GET而不是$ GET。