Как извлечь имя массива PHP JSON - PullRequest
0 голосов
/ 30 марта 2012

У меня есть файл PHP, который возвращает массив JSON. Мне нужно извлечь имя массива, в данном случае, * Regulatory_Guidance_Library * с помощью jQuery как переменную для $('#navHeaderTitle').text(arrayName); моей функции. Я не знаю, как это сделать.

Спасибо за вашу помощь

Моя функция в документе HTML:

function loadNav(url, container, appendE) {
        $.getJSON(url, function(data){
                    var arrayName = "";
            $.each(data.Regulatory_Guidance_Library, function(){
                var newItem = $('#' + container).clone();
                // Now fill in the fields with the data
                newItem.find("h1").text(this.label);
                newItem.find("h2").text(this.title);
                newItem.find("p").text(this.description);
                // And add the new list item to the page
                newItem.children().appendTo('#' + appendE)
            });
            $('#navHeaderTitle').text(arrayName);
            //transition(pageName, "show");
        });
    };

Обслуживаемый PHP:

<?php
//MySQL Database Connect
include 'andaerologin.php';

mysql_select_db("andaero");
$sql=mysql_query("select * from regulatory_list");

$output = new stdClass();

while($row = mysql_fetch_assoc($sql)) {
    $output->Regulatory_Guidance_Library[] = $row;
}

header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json');
echo (json_encode($output));

mysql_close();
?>

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Другой ответ, вероятно, более полезен, но если вы хотите получить имена свойств объекта с помощью JavaScript, вы можете сделать:

for (var name in data) {
    alert(name);
}

В вашем случае, поскольку у вас есть только одно свойство, которое вы можете сделать:

for (var name in data) {
    $('#navHeaderTitle').text(name);
}
1 голос
/ 30 марта 2012

Изменить php:

$output = array();
  /* used "key" as name...could change to suit your app*/
$output['key']='Regulatory_Guidance_Library';

while($row = mysql_fetch_assoc($sql)) {
    $output['items'][]= $row;
}

AJAX:

$.getJSON(url, function(data){
        $.each(data.items, function(){
            var newItem = $('#' + container).clone();
            // Now fill in the fields with the data
            newItem.find("h1").text(this.label);
            newItem.find("h2").text(this.title);
            newItem.find("p").text(this.description);
            // And add the new list item to the page
            newItem.children().appendTo('#' + appendE)
        });
        $('#navHeaderTitle').text(data.key);
        //transition(pageName, "show");
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...