Я читаю данные из базы данных 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() {
});
Результат пуст
Проблема заключалась в кодировании букв. По-видимому, я использую немецкий алфавит, который был причиной этой ошибки.
Используйте echo
вместо print_r
для вывода строки JSON
Попробуйте добавить это на свой сервер server.php
header('Content-Type: application/json');
echo $jsonResults;