如何在php中创建动态json?

时间:2017-11-24 11:15:35

标签: 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是相同的,那么它将显示其children部分中的所有月份。它应显示在PAY_MONTH部分。

喜欢:在json,我们可以看到2017年就在那里,而在孩子里面的部分是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>

我希望你们了解我。

2 个答案:

答案 0 :(得分:0)

我做过类似的事情。

首先为下拉菜单添加ID。 对于年份下拉列表,添加id =&#34; year_select&#34; 对于工资下拉列表,添加id =&#34; sal_select&#34;

&#13;
&#13;
$("#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);
	});
});
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我不太确定你在问什么,但是如果你需要将JSON转换为PHP变量(将其转换为数组),你可以使用json_decode($json)和另一个方向json_encode($variable)

PHP manual reference for decode

PHP manual reference for encode

编辑:现在我发现这不是你要问的。我认为this会有所帮助,除了在XMLHttpRequest函数this中使用changecat(value)