Получение массива js из массива php с использованием ajax, без конкатенации

Пробовал здесь и здесь - безуспешно

function abc() {
    var sky = 'blue';
    var earth = 'deep';
    var sun = 'gold';
    $.ajax({
        url: 'images.php',
        type: 'post',
        data: {'earth': earth, 'sun': sun, 'sky': sky},
        success: function(data) {
            // here I want new values as js array from php array
        }
    });
}

images.php

... some code...
$sky = "over";
$earth = "down";
$sun = "middle";

echo array($sky, $earth, $sun);

Приведенный выше очень упрощенный пример. На самом деле мои переменные внутри массива php намного сложнее. Поэтому я не хочу использовать метод конкатенации на стороне php и строку split на стороне js.

Возможный дубликат Как передать переменные и данные из PHP в JavaScript?

iainn 21.05.2018 13:03

@iainn, уже сказал - пробовал по той ссылке - такого примера нет.

user7461846 21.05.2018 13:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
18
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

используйте JSON для взаимодействия между PHP и JS. PHP должен делать:

echo json_encode($myArray);

и Jquery, скорее всего, должен работать с http://api.jquery.com/jquery.getjson/

Ответ принят как подходящий

используйте json_encode для отправки данных обратно в ваш JS-код.

Ваша сторона JS:

function abc() {
    var sky = 'blue';
    var earth = 'deep';
    var sun = 'gold';
    $.post('images.php', {'earth': earth, 'sun': sun, 'sky': sky}).done(
        function(json) {
            data = JSON.parse(json);
            //use data
        }
    });
}

images.php:

$sky = "over";
$earth = "down";
$sun = "middle";

echo json_encode(array($sky, $earth, $sun));

Спасибо, я буду стараться. Просто - можно ли такое же написать по структуре функции ajax - success?

user7461846 21.05.2018 13:17

да, вы можете, это традиционный способ обработки обратного вызова успеха jquery, но, поскольку реализация $ .Deferreds и более сложных обратных вызовов, done является предпочтительным способом реализации обратных вызовов успеха.

xanadev 21.05.2018 13:21

Другие вопросы по теме