显示某些项目CodeIgniter的单选按钮和复选框

时间:2017-07-20 06:34:33

标签: php codeigniter

我是Codeigniter框架的新手。我有一个场景,我必须显示基于数据库值0或1的单选框和复选框。如果值为0,则单选按钮应显示为特定项目,如果值为1,则显示带有复选框的项目用户可以选择多个项目。我怎样才能完成这项任务?现在,我只能用复选框显示所有项目。

我在数据库中添加了名为multi_select的新字段。这里我保存值为0和1的项目。

这是我的代码。

$(document).on('click', '.add_cart_modal', function (e) {
        $('.item_attr_div_model').empty();
        var it_val = $(this).attr('value');
        $data = 'item_id=' + it_val;
        var rest_id = $("#restid-" + it_val).val();
        $url = '<?= base_url() ?>main/get_item_attributes';
        $.ajax({
            url: $url,
            type: "POST",
            dataType: 'json',
            data: $data,
            success: function (data) {
                if (data.item_options != null && data.group_attrib == '1') {
                    var item_group_data = '';
                    $.each(data.item_options, function (key, item) {
                        var item_attrib = '';
                        if (item.attributes != null) {
                            $.each(item.attributes, function (key, it_attrbues) {
                                item_attrib += '<div class="col-lg-4" style="margin-top: 10px;">' +
                                    '<div class="checkbox">' +
                                    '<input id="' + it_attrbues.name + '" type="checkbox" value="' + it_attrbues.id + '" class="options_ids" name="options[]" style="margin-right:5px">' +
                                                                                   if (item.attributes != null) {
                            item_group_data +=                                   + item.group_name  +
                                '' + item_attrib +;
                        }
                    });
                    var item_attr_display = 
                        '<input name="item_id" id="attr_item_id" type="hidden" value="' + data.item_id + '" >' +
                        '<input name="item_name" id="attr_item_name" type="hidden" value="' + data.item_name + '" >' +
                        '<input name="item_price" id="attr_item_price" type="hidden" value="' + data.item_price + '" >' +
                        '<input name="rest_id" id="attr_rest_id" type="hidden" value="' + rest_id + '" >' +
                         data.item_name + data.item_description + Price +
                         data.item_price +  item_group_data;
                    $('.item_attr_div_model').append(item_attr_display);
                    $('#add_cart_modal').modal('show');
                } else {
                    var attribute_ids = '';
                    post_array =
                    {
                        "item_id": $("#id-" + it_val).val(),
                        "item_name": $('#name-' + it_val).val(),
                        "item_qty": $("#qty-" + it_val).val(),
                        "item_price": $("#price-" + it_val).val(),
                        "rest_id": $("#restid-" + it_val).val(),
                        "attribute_ids": attribute_ids
                    }
                    $.post(base_url + "main/add_item_to_cart", post_array,
                function (data) {
                    var res = jQuery.parseJSON(data);
                    update_cart_items(res.cart_view, res.total_cost, res.items_count);
                    $('.whole_div').hide();
                });
            }
        }
    });
});

如何从数据库中读取特定项目的0和1值,并根据其值显示广播或复选框?

1 个答案:

答案 0 :(得分:0)

更改您的$.each功能,如下所示

$.each(item.attributes, function (key, it_attrbues) {
var ty = 'radio'; 
if(it_attrbues.multi_select == '1') //if the value is 1 then it will pass checkbox
{ 
    ty = 'checkbox'; 
} 
    item_attrib += '<div class="col-lg-4" style="margin-top: 10px;">' +
        '<div class="checkbox">' +
        '<input id="' + it_attrbues.name + 
        '" type="'+ty+'" value="' + it_attrbues.id + '" class="options_ids" name="options[]" style="margin-right:5px">' +
        '<label style="padding-left: 25px;" class="label-radio oswald-font bold font22"for="' + it_attrbues.name + '">' + it_attrbues.name + ' (' + it_attrbues.price + ')</label>' +
        '</div>' +
        '</div>';
});