Я столкнулся с проблемой, которую я пытаюсь решить в течение нескольких часов, я надеюсь, что вы можете мне помочь. Итак, с самого начала у меня есть алгоритм в JavaScript, который генерирует переменные, которые я хочу сохранить в базе данных и распечатать для пользователя на веб-сайте. Для этого я думал, что я сгенерирую массив объектов для обработки всех переменных сразу (он генерирует столько переменных, сколько хочет пользователь, поэтому иногда их может быть несколько, иногда в несколько раз больше). Я думал, что будет легко отправлять и обрабатывать json, а затем быть доступным как обычные переменные в PHP. Итак, вот мои тестовые данные:
[[{"id_day":1},{"exercise":"some test exercise1"},{"repeats":2},{"energyWorth":300}],
[{"id_day":1},{"exercise":"some test exercise2"},{"repeats":2},{"energyWorth":300}],
[{"id_day":2},{"exercise":"some test exercise3"},{"repeats":2},{"energyWorth":300}],
[{"id_day":2},{"exercise":"some test exercise4"},{"repeats":2},{"energyWorth":300}],
[{"id_day":3},{"exercise":"some test exercise5"},{"repeats":2},{"energyWorth":300}],
[{"id_day":3},{"exercise":"some test exercise6"},{"repeats":2},{"energyWorth":300}],
[{"id_day":4},{"exercise":"some test exercise7"},{"repeats":2},{"energyWorth":300}],
[{"id_day":4},{"exercise":"some test exercise8"},{"repeats":2},{"energyWorth":300}],
[{"id_day":5},{"exercise":"some test exercise9"},{"repeats":2},{"energyWorth":300}],
[{"id_day":5},{"exercise":"some test exercise10"},{"repeats":2},{"energyWorth":300}],
[{"id_day":6},{"exercise":"some test exercise11"},{"repeats":2},{"energyWorth":300}],
[{"id_day":6},{"exercise":"some test exercise12"},{"repeats":2},{"energyWorth":300}]]
Я использовал ajax в своем скрипте для отправки этого массива объектов по этому коду:
$.ajax({
url: 'test2.php',
type: 'post',
data: {"data_js" : JSON.stringify(plan)},
success: function(data) {
}
});
И хотел использовать em сейчас в PHP файле под названием test2.php, запустив код:
if (isset($_POST["data_js"])) {
$data_js = $_POST["data_js"];
$data_js = json_decode($data_js);
var_dump($data_js);
var_dump($data_js[0][1]);
}
Поэтому я успешно отправил свой массив объектов в переменную с именем $ data_js и декодировал em с помощью json для использования em в PHP. Проблема в том, что мой массив выглядит следующим образом:
array(20) {
[0]=>
array(4) {
[0]=>
object(stdClass)#1 (1) {
["id_day"]=>
int(1)
}
[1]=>
object(stdClass)#2 (1) {
["exercise"]=>
string(37) "some test exercise1"
}
[2]=>
object(stdClass)#3 (1) {
["repeats"]=>
int(2)
}
[3]=>
object(stdClass)#4 (1) {
["energyWorth"]=>
int(300)
}
}
[1]=>
array(4) {
[0]=>
object(stdClass)#5 (1) {
["id_day"]=>
int(1)
}
[1]=>
object(stdClass)#6 (1) {
["exercise"]=>
string(38) "some test exercise2"
}
[2]=>
object(stdClass)#7 (1) {
["repeats"]=>
int(2)
}
[3]=>
object(stdClass)#8 (1) {
["energyWorth"]=>
int(300)
}
}
и так далее. Дело в том, что я должен иметь доступ к каждой переменной, как в JS, я мог запускать данные [0].exercise, и это дало мне простой вывод "some test exercise1". Я пытался использовать, например, var_dump ($ data_js [0] [1]); который дает мне переменную, которую я хочу получить, но в этом формате:
object(stdClass)#2 (1) {
["exercise"]=>
string(37) "some test exercise1"
}
И это далеко не то, что я хочу получить. Я мог бы использовать неправильные методы, делая это в первый раз, поэтому, если у вас есть идеи или скажите, что я просто делаю это неправильно, я был бы более чем счастлив. Кажется, что я потерялся во всей этой JS-JSON-PHP. Спасибо, ребята, заранее!
Вы должны использовать json_decode($data, true);
Второй параметр гарантирует, что данные будут декодированы в формате массива.
json_decode($data_js, true);
var_dump($data_js[0][1]->exercise);
?