php - 如何在php中创建动态json?

标签 php mysql json codeigniter

我想在 CI 中显示动态依赖下拉列表。 我创建了下面的动态 json,但我不明白如何将其转换为 php 格式。

{
    "salary": [
        {
            "id": 0,
            "text": 2017,
            "data": {},
            "children": [
                {
                    "id": 1,
                    "text": "May"
                },
                {
                    "id": 2,
                    "text": "July"
                },
                {
                    "id": 3,
                    "text": "August"
                },
                {
                    "id": 4,
                    "text": "September"
                },
                {
                    "id": 5,
                    "text": "October"
                }
            ]
        }
    ]
}

下面是我想要实现此代码的 PHP 代码。 如果 text = 2017 相同,则意味着 PAY_YEAR IS SAME,那么其中将显示其 children 部分中的所有月份。它应显示在 PAY_MONTH 部分中。

就像:在 json 中我们可以看到 2017 年在那里,在 child 部分里面有 5 个月。 因此,如果用户从下拉列表中选择 2017 年,那么所有月份都应该出现在 pay_month 的另一个下拉列表中。

<form action="#" method="get" class="form-horizontal">
    <div class="control-group" style="float: left;">
        <label class="control-label">Select Year</label>
        <div class="controls">
            <select>
                <?php
                foreach ($salary  as $row) {?>
                <option><?php  echo $row->PAY_YEAR;}?></option>
            </select>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label">Select Month</label>
        <div class="controls">
            <select>
                <?php
                foreach ($salary  as $row) {?>
                <option><?php  echo $row->PAY_MONTH;}?></option>
            </select>
        </div>
    </div>
    <div class="form-actions">
        <button type="submit" class="btn btn-success">Search</button>
        <button type="submit" class="btn btn-success">Cancel</button>
    </div>
</form>

希望大家理解我。

最佳答案

我曾经做过这样的事情。

首先为两个下拉列表添加 ID。 对于年份下拉列表添加 id="year_select" 对于工资下拉列表添加 id="sal_select"

$("#year_select").change(function() {
	$.getJSON('json_data.txt', function(read_data) {
		var data = read_data.salary[0].children;
		var str_opt = "<option value=''></option>";
		$.each(data, function(i, item) {
			str_opt += "<option value='"+data[i].id+"'>"+data[i].id+"</option>";
		});
		$('#sal_select').html(str_opt);
	});
});

关于php - 如何在php中创建动态json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47472138/

相关文章:

不使用 HAVING 的 SQL 查询过滤 COUNT

php - 如果 0 变为 1,则更改 mySQL 数据库记录值 onclick

mysql - 我如何使用 mysql 获得 0 表示没有记录?

javascript - 无法使用 JSON 将对象列表传递到 View

php - 使用html和php将图像上传到mysql

php - 插入后如何修复mysql列值

php - PHP 和 MySQL 中的短 URL 出站链接跟踪

PHP 数据映射器 setter / getter

c# - JsonConvert 不转换 UTC -> PopulateObject 中的本地时间

java - 更改 JSON 函数以使其工作?