В бд хранится данные в формате json, вот так выглядят {"0,2,,,,,,,,,,,,,,": ""}
Мне нужно получить их и записать в массив js
Делаю AJAX:
$(document).ready(function(){
$.ajax({
type:'POST',
url: 'php/getLessonData.php',
data: false,
dataType: 'json',
success: function(data){
alert(data);
}
});
});
getLessonData.php:
<?php
require "db.php";
header('Content-Type: application/json');
if (isset($_SESSION['logged_user'])) {
// Получаем id users чья ссесия
$userid = $_SESSION['logged_user']->id;
// Загружаем данные об этом user
$user = R::Load('users', $userid);
//подгружаем данные с таблицы Courses
$course = R::load('courses', $userid);
// ЗДЕСЬ записываем json из бд в переменную $lessonProgress
// lesson_progress это то поле, где находится {"0,2,,,,,,,,,,,,,,": ""}
$lessonProgress = $course->lesson_progress;
}
//Вот здесь если оставить json_decode то ответ от сервера получается(см ниже)
echo json_decode($lessonProgress);
?>
Ответ при использовании json_decode:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Полезная нагрузка ответа:
<br />
<b>Recoverable fatal error</b>: Object of class stdClass could not be converted to string in <b>W:\domains\appBL\php\getLessonData.php</b> on line <b>15</b><br />
var_dump(json_decode($lessonProgress))
:
object(stdClass)#21 (1) { ["0,2,,,,,,,,,,,,,,"]=> string(0) "" }
alert в ajax запросе возвращает [object Object]
Ответ без использования json_decode, т.е. просто echo $lessonProgress;
var_dump$lessonProgress
: string(25) "{"0,2,,,,,,,,,,,,,,": ""}"
alert в ajax запросе не срабатывает
Что я делаю не так, как мне получить и записать эти данные в массив js?
Изначально вы неправильно записали массив в формате JSON в базу, соответственно и вернуть его не сможете.
Нужно передать массив в php в формате JSON, после использовать json_encode($post)
и записать его в базу, в результате вы получите в базе строку [1,2,3]
, которая соответствует формату.
Получить данные очень просто, вы вытаскиваете эту строку и безо всякого перевода (просто через echo
) отправляете её уже в формате JSON.
Если же вы хотите сохранить ассоциативный массив, вам следует использовать другую конструкцию, к примеру сериализованный массив php
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
есть код , но при отправке , сервер не получае мой запрос ввиде json,прилетает пустой , в чем может быть проблема
Возникла проблемаУ меня есть канвас и картинка, которая в нем генерируется