Как вы используете данные JSON, извлеченные из внешнего php-файла в вашем javascript / html? - PullRequest
1 голос
/ 29 сентября 2011

Мне удалось вытащить данные JSON и поместить их в мой HTML-файл в виде скрипта в моей голове.Как мне получить доступ к этим данным?(поместите его в используемые переменные)

внешний файл json.php (заполненный данными mySQL):

names: 
[
    {"firstName":"Kevin","lastName":"Guo"},
    {"firstName":"Jun Sung","lastName":"Wong"},
    {"firstName":"Anton","lastName":"Ansalmar"},
    {"firstName":"Linda","lastName":"Wong"},
    {"firstName":"George","lastName":"Costanza"}
]

мой код JavaScript, который извлекает внешние данные json:

var elm = document.createElement("script");
elm.setAttribute("type", "text/javascript");
elm.src = "http://totallyExternalURL.php";
elm.id="jsonTest";
console.log(elm);
document.getElementsByTagName('head')[0].appendChild(elm);

Все данные json помещены в мою голову как скрипт, как я могу вывести все имена / фамилии для отображения?

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

То, что вы делаете, на самом деле известно как jsonp.Обычно вы должны сделать так, чтобы скрипт возвращал скрипт, вызывающий функцию на вашей странице с данными.Возможно, вам будет проще работать с jQuery, используя jsonp или, если вы вызываете скрипт на вашем собственном сервере, обычный `json '.

function callback(data) {
  ... do something with the returned data
}

var elm = document.createElement("script");
elm.setAttribute("type", "text/javascript");
elm.src = "http://totallyExternalURL.php?callback=callback";
elm.id="jsonTest";
console.log(elm);
document.getElementsByTagName('head')[0].appendChild(elm);

Затем верните свой внешний скрипт (заметьте, ваш скриптдолжен определить значение параметра обратного вызова и использовать его в качестве имени вызываемой функции).Имя функции и значение параметра обратного вызова должны совпадать.

callback( { "names" : 
    [
        {"firstName":"Kevin","lastName":"Guo"},
        {"firstName":"Jun Sung","lastName":"Wong"},
        {"firstName":"Anton","lastName":"Ansalmar"},
        {"firstName":"Linda","lastName":"Wong"},
        {"firstName":"George","lastName":"Costanza"}
    ] });

Или с jQuery

 $.getJSON( 'http://totallyExternalURL.php?callback=?', function(data) {
       ... do something with the data ...
 });
0 голосов
/ 29 сентября 2011

Сделайте js, возвращаемую как функцию, которая возвращает объект javascript, который является массивом, и затем вы можете сделать вызов этой функции и присвоить возвращаемое значение переменной.

Оберните JSON ввызов функции.

Поиск jsonp.

...