要使用jQuery、JSON、AJAX和CodeIgniter来填充子菜单的下拉菜单,你需要完成以下几个步骤:
这种技术组合常用于动态网站,特别是当需要根据用户的选择或其他条件动态更新页面内容时。
// 在控制器中
public function get_sub_menu() {
$parent_id = $this->input->post('parent_id'); // 获取前端发送的父菜单ID
$sub_menus = $this->menu_model->get_sub_menus($parent_id); // 假设有一个模型方法来获取数据
echo json_encode($sub_menus); // 将数据编码为JSON并返回
}
// 在模型中
public function get_sub_menus($parent_id) {
$query = $this->db->get_where('menus', array('parent_id' => $parent_id));
return $query->result_array();
}
<select id="parent_menu">
<!-- 父菜单选项 -->
</select>
<select id="sub_menu">
<!-- 子菜单选项将通过AJAX填充 -->
</select>
$(document).ready(function() {
$('#parent_menu').change(function() {
var parent_id = $(this).val();
$.ajax({
url: 'controller_name/get_sub_menu', // 控制器方法的URL
type: 'POST',
data: { parent_id: parent_id },
dataType: 'json',
success: function(data) {
$('#sub_menu').empty(); // 清空现有选项
$.each(data, function(index, item) {
$('#sub_menu').append($('<option>', {
value: item.id,
text: item.name
}));
});
},
error: function(xhr, status, error) {
console.error("AJAX请求失败: " + status + error);
}
});
});
});
通过以上步骤,你可以实现一个动态填充子菜单下拉菜单的功能。记得在实际部署时,考虑安全性问题,如防止SQL注入和XSS攻击。
领取专属 10元无门槛券
手把手带您无忧上云