2015-10-15 2 views
2

EDIT: фиксированный _ опечатка (2x), добавил заголовок, по-прежнему вход 100.JQuery основной 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-коде. Вы пытаетесь использовать $ GET [] для получения параметров, переданных в PHP-скрипт. Но это $ _GET [], что вам нужно использовать. См. http://php.net/manual/en/reserved.variables.get.php.

+0

Но почему он записывает '100'? –

0

Вы не возвращаете элемент json из своего PHP-файла.

Добавить header('Content-Type: application/json'); в верхней части вашего файла PHP.

Также неверна ваша заявка $_GET.

0

Почему он возвращает 100, я действительно не знаю, вероятно, номер ошибки. Но ваш PHP-код ошибочен, это $ _GET не $ GET.