im пытается сделать некоторые диаграммы, используя jquery jChartFX.
Когда Ive делал массивы в том же файле, используя php, он отлично работает, как бы то ни было, когда он должен быть захвачен из другого файла, потому что я пытаюсь использовать json.
массив выглядит следующим образом (print_f ($ chartArray))
Array (
[0] => Array (
[Procent rigtige] => 100
[Antal rigtige] => 4
[Antal mulige] => 4
[Date] => Januar-1970 )
[1] => Array (
[Procent rigtige] => 100
[Antal rigtige] => 4
[Antal mulige] => 4
[Date] => Februar-2014 )
)
Как всегда, когда я пытаюсь декодировать json, это похоже
Array (
[0] => stdClass Object (
[Procent rigtige] => 100
[Antal rigtige] => 4
[Antal mulige] => 4
[Date] => Januar-1970 )
[1] => stdClass Object (
[Procent rigtige] => 100
[Antal rigtige] => 4
[Antal mulige] => 4
[Date] => Februar-2014 )
)
В любом случае, используя jquery, я могу разобрать json из моего php в jquery и сохранить его как массивы, а не объекты?
Или есть способ, которым я могу сделать это умнее?
я использую
echo json_encode($chartArray);
на моем getUserStats.php и получить им im using>
$.ajax({
type: "GET",
url: "getUserStats.php", data: {'type': 'monthly'},
success: function(data) {
chart1.setDataSource(JSON.parse(data))
}
});
Чтобы проанализировать json в jquery, вы можете использовать jQuery.parseJSON()
В PHP используйте json_encode() для кодирования массива.
В test.php добавьте заголовок ('Content-Type: application/json');
test.php
// header('Content-Type: application/json'); //change
$chartArray = array(
"0" => array(
"Procent rigtige" => 100,
"Antal rigtige" => 4,
"Antal mulige" => 4,
"Date" => "January-1970"
),
"1" => array (
"Procent rigtige" => 100,
"Antal rigtige" => 4,
"Antal mulige" => 4,
"Date" => "February-2014" )
);
echo json_encode($chartArray);
AJAX
$.ajax({
type: "GET",
url: "test.php",
data: {'type': 'monthly'},
// dataType: "json", // change
success: function(data) {
chart1.setDataSource(data); //change // output 100
}
});
Это не связано с jQuery или чем-либо еще, что вы делаете, это похоже на неправильное использование json_decode
.
Вероятно, вы расшифруете JSON с помощью $arr = json_decode($json_string)
но вы хотите, чтобы $arr = json_decode($json_string, true)
.
Второй аргумент json_decode
, assoc
, определяет, должен ли возврат быть ассоциативным массивом или объектами, которые вы получаете в представлении. См. Документацию json_decode.
Это возможный дубликат json_decode для массива
test.php
выводит JSON, $.ajax(..., function(data) { - use data here, should be your JSON parsed into a javascript object - })
. Если что-то не работает, вы можете использовать Chrome Dev Tools или Firebug, чтобы проверить, правильно ли отправлен запрос и ваш test.php
возвращает то, что вы хотите.
Если у вас есть файл с именем make_json.php
в вашем корне, вы можете сделать это с помощью jQuery:
var json = $.getJSON('/make_json.php');
Затем в вашем файле make_json.php
вам просто нужно будет make_json.php
на какой-нибудь json. Использовать json_encode
:
// ... assuming your array is called $array
echo json_encode($array);
Вам не нужен jQuery, но это, конечно, упрощает.
Это может помочь:
$json = json_encode($yourArray);