Получение объектов из JSON с использованием файлов cookie - PullRequest
0 голосов
/ 02 марта 2019

Я использую php-скрипт, который содержит некоторые json-файлы в этом каталоге content/languages/, например, для вызова языка frensh, который я должен посетить domain.com/?=frensh Любой совет для чтения активного языка в cookie с использованием js.

Например, когда я захожу по этой ссылке: domain.com/?=english cookie-файл языка изменяет свое значение на английский

Есть идеи?

`

1 Ответ

0 голосов
/ 02 марта 2019

Эти строки могут помочь вам в вашей идее.

Сначала вставьте эту функцию js рядом с вашей

function readFile(file, callback) {
    var rawFile = new XMLHttpRequest();
    rawFile.overrideMimeType("application/json");
    rawFile.open("GET", file, true);
    rawFile.onreadystatechange = function() {
            if (rawFile.readyState === 4 && rawFile.status === 200) {
                    callback(rawFile.responseText);
            }
    }
    rawFile.send(null);
}

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                    c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
            }
    }
    return "";
}

Затем, как вы говорите о языковой cookie, вы можете использовать эту строку js:

var dataJSON;
readFile("content/languages/"+getCookie("language")+".json", function(text) {
    dataJSON = JSON.parse(text); 
}); 

результат будет таким: content/languages/english.json если у вас есть английское значение внутри языка cookie

Легкая часть будет следующей, если ваши объекты json будут такими же

{
    "test": {
        "test1"                 : "test2",
     }
}

Вы можете просто написать dataJSON.test.test1 для печати test2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...