我想在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>
我希望你们了解我。
答案 0 :(得分:0)
我做过类似的事情。
首先为下拉菜单添加ID。 对于年份下拉列表,添加id =&#34; year_select&#34; 对于工资下拉列表,添加id =&#34; sal_select&#34;
$("#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;
答案 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)
。