【问题标题】:Json array into select box with php使用php将Json数组放入选择框
【发布时间】:2015-05-16 03:35:14
【问题描述】:

我希望有人可以帮助我解决这个问题。我想要的是一个选择框,它是从一个 json 文件中填充的。问题是我有一种奇怪的 json 文件,我不知道它是数组还是对象。

它是这样的:

{
"Id": 4,
"Name": "Testing Demo",
"OpeningHours": [
    {
        "Name": "Monday",
        "Hours": "Kl. 09:30:00 - 21:00:00"
    }
],
"Address": {
    "Street": "Johnson road",
    "StreetNumber": "5",
    "Town": "London"
},
"Phone1": "4123213414",
"Phone2": null,
"Documents": null,
"Messages": [
    {
        "Title": "We are on the way",
        "Body": "fine",
        "Created": "01-02-2014"
    },
    {
        "Title": "Get the stuff",
        "Body": "To be ready",
        "Created": "01-01-2014"
    }
],
"Employees": [
    {
        "Name": "John Hood",
        "Description": "officer",
        "ProfileImageUrl": "http://grfx.cstv.com/photos/schools/kty/sports/m-baskbl/auto_headshot/9265204.jpeg"
    },
    {
        "Name": "John hood 2",
        "Description": "athletic",
        "ProfileImageUrl": "http://grfx.cstv.com/photos/schools/kty/sports/m-baskbl/auto_headshot/9265204.jpeg"
    }
]
}

我将如何显示 ID 和名称的值?

这段代码不起作用,我不知道我是否正确地这样做了..

(function($) {
$(document).ready(function() {
    $('<tr class="form-field form-required"></tr>').append(
        $('<th scope="row">New field</th>')
    ).append(
        $('<td></td>').append(
            $('<select id="release-list"></select>')
        ).append(
            $('<p>Explanation about your new field</p>')
        )
    ).insertAfter('#wpbody-content table tr:eq(2)');




});

 $.getJSON('../../cache/path.json', function(data) {
    var select = $('#release-list');
    $.each(data, function(key, val){
        $('<option/>').attr('value', val[key]["Id"]).html('value' + val[key]["Name"]).appendTo(select);
    });
    });

    })(jQuery);

【问题讨论】:

  • Id?你不需要循环。它的data.Id。对于员工,其data.Employees 然后使用.each,然后使用val.Name
  • @Ghost 你能举个例子吗?

标签: javascript php json jquery-selectbox


【解决方案1】:

您可以使用 JSON.parse() 将数据从 json 转换为数组

http://www.dyn-web.com/tutorials/php-js/json/parse.php

例子:

var data = '{"first":[1,2,3],"second":[4,5,6]}';
var jsonData = JSON.parse(data);
alert(jsonData.first[1]);
alert(jsonData.second);

【讨论】:

  • 如何将其插入选择框?
  • 如果您的数据有多个数组。您可以做的是在将其转换为 json 之后在循环中运行它,然后将其附加到 select 中。 select.append("");
猜你喜欢
  • 2013-06-14
  • 2017-09-28
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
  • 2022-07-11
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
相关资源
最近更新 更多