gpt4 book ai didi

javascript - 如何使用javascript对json类型数据进行排序?

转载 作者:行者123 更新时间:2023-12-02 18:02:37 26 4
gpt4 key购买 nike

我有 3 个下拉菜单,其中包含我想要按升序排序的地点列表。第一个地点下拉列表使用 codeigniter active record order_by 函数进行排序,并且地点已成功按升序排序。但是,使用 onchange javascript 函数,当我在第一个下拉列表然后填充第二个位置下拉列表,不包括我在第一个下拉列表中选择的位置,返回的位置没有按升序排序,即使我的查询中有 order_by 函数。我怀疑这是因为onchange中返回的json格式数据所致。这是我的代码。感谢您的帮助。

此代码按升序对数据进行正确排序

function get_dropdown_barangay(){

$query = $this->db->select('ID,brgy_name')
->from('tbl_barangay')
->order_by('brgy_name','asc')
->get()
->result_array();
$dropdown = array('0'=>'Select Barangay');
foreach($query as $value){
$dropdown[$value['ID']] = $value['brgy_name'];
}

return $dropdown;

}

输出图像: enter image description here

更改代码时,返回的地点不按升序排序

$('#brgy_id_1').change(function(){

var brgy_id = $("#brgy_id_1").val();
alert(brgy_id);
var data_val = {'brgy_id':brgy_id};

$.ajax({
type: "POST",
url:"<?php echo base_url();?>admin/get_barangay_list",
data:data_val,
dataType:'json',
success: function(data)
{
$('#brgy_id_2').empty();
$.each(data,function(id,val)
{
var opt = $('<option />'); // here we're creating a new select option for each group
opt.val(id);
opt.text(val);
$('#brgy_id_2').append(opt);
});
}
});

}); //end change

admin.php

function get_barangay_list(){

if(isset($_POST['brgy_id2'])){
$brgy_array_id = array('0'=>$_POST['brgy_id'],'1'=>$_POST['brgy_id2']);
} else{
$brgy_array_id = array('0'=>$_POST['brgy_id']);
}

$result=$this->core_model->get_barangay_list($brgy_array_id);
$this->output->set_header('Content-Type: application/json',true);
echo json_encode($result);
}

模型.php

function get_barangay_list($brgy_array_id){

$query = $this->db->select('ID,brgy_name')
->from('tbl_barangay')
->where_not_in('ID',$brgy_array_id)
->order_by('brgy_name','asc')
->get()
->result_array();
$dropdown = array('0'=>'Select Barangay');
foreach($query as $value){
$dropdown[$value['ID']] = $value['brgy_name'];
}

return $dropdown;

}

显示数据未按升序排序的输出图像

enter image description here

最佳答案

实现 kinghfb 评论的一种方法:

在服务器端:构建一个数组

$dropdown = array();
$dropdown[] = array('id' => 0, 'label' => 'Select city');
for ($query as $value) {
$dropdown[] = array('id' => $value['ID'], 'label' => $value['brgy_name']);
}

在客户端(javascript):更改循环代码:

$.each(data,function(id,val) {
var opt = $('<option />'); // here we're creating a new select option for each group
opt.val(val.id);
opt.text(val.label);
$('#brgy_id_2').append(opt);
});

关于javascript - 如何使用javascript对json类型数据进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20397494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com