无法对Ajax下拉列表进行排序

时间:2015-02-08 18:15:44

标签: ajax codeigniter sorting

我有2个下拉列表,第二个下拉列表依赖于第一个下拉列表。除了第二个ajax下拉列表没有按字母顺序排序外,一切正常。 这是我的代码: 查看:

$('#ctid').change(function() {
        $("#sditid > option").remove();
        var ctid = $('#ctid').val();
        if (ctid === '') {
            return false;
        }
        $.ajax({
            type: "POST",
            url: "<?php echo base_url() ?>items/get_dropdown_by_ajax/" + ctid,
            success: function(sditid) {
                var opt = $('<option />');
                opt.val('');
                opt.text('-- Select Item --');
                $('#sditid').append(opt);
                $.each(sditid, function(itid, item) {
                    var opt = $('<option />');
                    opt.val(itid);
                    opt.text(item);
                    $('#sditid').append(opt);
                });
            }
        });
    });

下拉表单(查看):

<?php echo form_label('Item: ', 'sditid') ?>
<?php echo "<select name='sditid' id='sditid'><option value=''>-- Select Item --</option></select>" ?>

控制器:

function get_dropdown_by_ajax($itctid) {
    $data = $this->items_m->get_dropdown_by_ajax($itctid);
    header('Content-Type: application/x-json; charset=utf-8');
    echo json_encode($data);
}

型号:

function get_dropdown_by_ajax($itctid) {
        $this->db->select('itid, itnm');
        $this->db->where('itctid', $itctid);
        $this->db->order_by('itnm', 'asc');
        $data = $this->db->get('items');
        if ($data->num_rows() > 0) {
            foreach ($data->result() as $item) {
                $data_arr[$item->itid] = $item->itnm;
            }
            return $data_arr;
        }
    return;
}

项目表:

CREATE TABLE IF NOT EXISTS `items` (
  `itid` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `itctid` int(11) unsigned NOT NULL,
  `itnm` varchar(255) NOT NULL,
  `itmrp` decimal(10,2) NOT NULL,
  `itstkcnt` varchar(10) NOT NULL,
  `itrol` decimal(10,2) NOT NULL,
  `ituom` varchar(150) NOT NULL,
  `itrmks` varchar(255) NOT NULL,
  `itcrid` int(11) unsigned NOT NULL,
  `itcrdtm` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `itmdfid` int(11) unsigned DEFAULT NULL,
  `itmdfdtm` datetime DEFAULT NULL,
  PRIMARY KEY (`itid`),
  UNIQUE KEY `itnm` (`itnm`),
  KEY `itctid` (`itctid`),
  KEY `itcrid` (`itcrid`),
  KEY `itmdfid` (`itmdfid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

请帮忙!我曾尝试过到处搜寻,现在花了将近一个星期。

0 个答案:

没有答案