我有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;
请帮忙!我曾尝试过到处搜寻,现在花了将近一个星期。