Не могу получить массив со стороны сервера

Я хочу получить некоторые данные из php-скрипта на свою html-страницу. Их массив $UniqueNames имеет значение на стороне сервера, но, похоже, ничего не происходит, когда я использую json_encode на странице html, console.info возвращает пустой массив (BilderID). Какие-либо предложения?

код:

<script>
var BilderID = [];
$(document).ready(function (e) {
    $('#SubmitBild').on('click', function () {
        var form_data = new FormData();
        var ins = document.getElementById('Myfilefield').files.length;
        for (var x = 0; x < ins; x++) {
            form_data.append("Bilder[]", document.getElementById('Myfilefield').files[x]);
        }
        $.ajax({
            url: 'Includes/Bildhantering.php', // point to server-side PHP script
            dataType: 'text', // what to expect back from the PHP script
            cache: false,
            contentType: false,
            processData: false,
            data: form_data,
            type: 'post',
            success: function (response) {
                $('#msg').html(response); // display success response from 
            },
            error: function (response) {
                $('#msg').html(response); // display error response from the PHP script
            }
        });

        BilderID = <?php echo json_encode($UniqueNames); ?>

        console.info(BilderID);

    });
});
</script>

Php:

$UniqueNames = array();    

for($i=0;$i<count($file_array);$i++)
{
    if ($file_array[$i]['error']){
        echo $phpFileUploadErrors[$file_array[$i]['error']];
    } else {
        $extensions = array('jpg','png','gif','jpeg');
        $file_ext = explode('.',$file_array[$i]['name']);
        $file_ext = end($file_ext);

        if (!in_array($file_ext, $extensions)){
            echo "Invalid file extension!";
        } else {
            $fileNameNew = uniqid('', true).".".$file_ext;
            $UniqueNames[] = $fileNameNew;

            move_uploaded_file($file_array[$i]['tmp_name'], 'Bilder/'.$fileNameNew);
            echo $phpFileUploadErrors[$file_array[$i]['error']];
        }
    }
}

dataType должен быть установлен в json, а не в текст

treyBake 06.02.2019 18:24

@treyBake все еще ничего.

Erik 06.02.2019 18:31

Он не выводит JSON из файла PHP...

Anuga 06.02.2019 21:30

Если вы микшируете серверную часть с интерфейсом/DOM, это не будет работать так, как вы это настроили.

Anuga 06.02.2019 21:34

о, подождите ... почему вы повторяете переменную PHP в своем скрипте jquery? используйте ответ..

treyBake 07.02.2019 10:04
Поведение ключевого слова "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) для оценки ваших знаний,...
1
5
76
1

Ответы 1

Решение состояло в том, чтобы удалить спецификатор типа данных, вывести массив в php и получить его внутри метода успеха:

  $.ajax({
            url: 'Includes/Bildhantering.php', // point to server-side PHP script
            //dataType: 'text', // what to expect back from the PHP script
            cache: false,
            contentType: false,
            processData: false,
            data: form_data,
            type: 'post',
            success: function (response) {
              BilderID = response;
              console.info(BilderID);
            },
            error: function (response) {
                console.info("error:");
            }
        });

я имею в виду, зачем использовать «тип данных», если javascript все равно это понимает?

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