Почему массив php не конвертируется в JSON?

0

Я читаю данные из базы данных mysql, и я сохраняю их в массив, который выглядит так:

Array
(
    [0] => aargau
    [1] => appenzell_au
    [2] => appenzell_in
    [3] => basel-land
    [4] => basel-stadt
    [5] => bern
    [6] => freiburg
    [7] => genf
    [8] => glarus
    [9] => graub�nden
    [10] => jura
    [11] => luzern
    [12] => neuenburg
    [13] => nidwalden
    [14] => obwalden
    [15] => obwalden
    [16] => schwyz
    [17] => solothurn
    [18] => st_gallen
    [19] => tessin
    [20] => thurgau
    [21] => uri
    [22] => waadt
    [23] => wallis
    [24] => zug
    [25] => z�rich
)

КОД (client.class.php) ЧТО ЭТО СМОТРЕТЬ ЭТО:

public function getCantons($country){
        $cantonsArray= array();
    //  $tmpArray = array();
        $sql_get_cantons = sprintf("SELECT name FROM locations WHERE country='".$country."'");
        $result = $this->CONNECTION->query($sql_get_cantons);
        while($row = mysqli_fetch_array($result)){  
            array_push($cantonsArray,$row['name']);
        }
        return $cantonsArray;
    }

У меня есть другой файл PHP (server.php), который возвращает ответ на вызов ajax

if($_POST['command']=='cantons'){
        $country = $_POST['country'];
        $client = new Client();
       // $results = $client->getActiveItemsOfCategory('technology');
        $results = $client->getCantons($country);
        $jsonResults = json_encode($results);
        print_r($jsonResults);
    }

В AJAX CALL (который работает правильно, потому что я использую тот же код, что и в других вызовах AJAX). Я просто делаю это:

 var jqxhr = $.post( "php/server.php", {country:COUNTRY,command:'cantons'},function() {

})
  .done(function(data) {
        console.log(data);
   })
  .fail(function(data) {
     alert(JSON.stringify(data));
  })
  .always(function() {

});

Результат пуст

  • 1
    Это не может работать, когда вы отправляете его без кодировки.
  • 0
    Вы смотрели запрос / ответ в консоли браузера?
Показать ещё 7 комментариев
Теги:
arrays

3 ответа

0

Проблема заключалась в кодировании букв. По-видимому, я использую немецкий алфавит, который был причиной этой ошибки.

0

Используйте echo вместо print_r для вывода строки JSON

  • 0
    Я тоже пробовал, и это не работает
0

Попробуйте добавить это на свой сервер server.php

header('Content-Type: application/json');
echo $jsonResults;
  • 0
    Жаль, что это не работает. Он показывает только сообщение: readyState = 4 .... и т. Д. Странная вещь заключается в том, что в моем server.php у меня есть весь мой код таким образом. Выполнение вызовов ajax и возврат данных в json, но в этом случае один и тот же метод не работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню