Setting checkbox checked depending of php query result

Setting checkbox checked depending of php query result

muhamadyuraz07muhamadyuraz07 Posts: 8Questions: 3Answers: 0

I'm filling the datatable successfully with rows that have checkboxes, but if the checkbox is checked is only working on the first page, the second page is not working al the checkboxes are coming unchecked.
Help, please..!

I'm feeling the datatable like this : ( sorry for the long code )

<tbody>
                                    <?php foreach ($rows as $row) {
                                        if($row->estado_tag == 0)
                                            echo '<tr id="tr-'.$row->id.'" class="disabled">';
                                        else
                                            echo '<tr id="tr-'.$row->id.'" class="row-select">';

                                        echo '<td class="align-middle text-center"><a href="#" data-toggle="modal" data-target="#exampleModal" data-id="'.$row->id.'" data-nome="'.$row->nome_produto.'" class="id">#PROD'.$row->id.'</a></td>';

                                        if($row->imagem_01 != ''){
                                            echo '<td class="text-center"><img class="responsive image rounded" src="'.base_url().'assets/images/Produtos/'.$row->imagem_01.'" width="100"></td>';
                                        }else
                                        {
                                            echo '<td class="text-center"><img class="responsive image rounded" src="'.base_url().'assets/images/Produtos/error_imagens.png" width="100"></td>';
                                        }

                                        $marcas = $CI->Administracao_model->getDataWhere('id', $row->marca_id, 'marcas');
                                        if($marcas != '')
                                        {
                                            foreach ($marcas as $marca) {
                                                $nome_marca = $marca->nome_marca;
                                            }
                                        }else
                                        {
                                            $nome_marca = 'Null';
                                        }

                                        echo '<td class="align-middle text-center text-uppercase">'.$nome_marca.'</td>';

                                        echo '<td class="align-middle text-center nomeProduto">'.$row->nome_produto.'</td>';

                                        if($this->session->userdata('nivel_membro') == 1)
                                        {
                                            echo '<td class="align-middle text-center precoCaixa">'.$row->preco_01.'</td>';
                                        }
                                        else
                                        {
                                            if($this->session->userdata('nivel_membro') == 2)
                                            {
                                                echo '<td class="align-middle text-center precoCaixa">'.$row->preco_02.'</td>';
                                            }else
                                            {
                                                if($this->session->userdata('nivel_membro') == 3)
                                                {
                                                    echo '<td class="align-middle text-center precoCaixa">'.$row->preco_03.'</td>';
                                                }   
                                            }
                                        }

                                        if($row->estado_tag == 0)
                                        {
                                            echo '<td class="align-middle text-center"><span class="badge badge-secondary">Sem Stoque</span></td>';
                                        }else
                                        {
                                            if($row->estado_tag == 1)
                                            {
                                                echo '<td class="align-middle text-center"><span class="badge badge-success">Dísponivel</span></td>';
                                            }else
                                            {
                                                if ($row->estado_tag == 2) {
                                                    echo '<td class="align-middle text-center"><span class="badge badge-danger">Promoção</span></td>';
                                                }
                                            }
                                        }   

                                        $unidades = $CI->Administracao_model->getDataWhere('id', $row->unidade_id, 'unidade_produtos');
                                        if($unidades != '')
                                        {
                                            foreach ($unidades as $unidade) {
                                                $unidade_desc = $unidade->quantidade;
                                            }
                                        }else
                                        {
                                            $unidade_desc = 'Null';
                                        }

                                        echo '<td class="align-middle text-center">'.$unidade_desc.'</td>';

                                        $count = 0;

                                        foreach ($produtos_encomendados as $row_pr_enc) {

                                            if ($count == 0) {
                                                if($row_pr_enc->id_produto == $row->id){
                                                    echo '<td class="align-middle text-center keyvalue"><input type="number" id="prodquantity-'.$row->id.'" value="0" min="0" max="1000" class="text-center w-100 prodquantity" oninput="this.value = Math.round(this.value);"/></td>';

                                                    echo '<td class="align-middle text-center">
                                                    <div class="custom-control custom-checkbox">
                                                    <input class="custom-control-input produtochk" type="checkbox" id="chkboxprodid-'.$row->id.'" class="produtochk" name="produtochk" data-productidckbx='.$row->id.' checked>
                                                    <label class="custom-control-label" for="chkboxprodid-'.$row->id.'"></label>
                                                    </div>
                                                    </td>';
                                                    $count++;
                                                }else
                                                {
                                                    echo '<td class="align-middle text-center keyvalue"><input type="number" id="prodquantity-'.$row->id.'" value="0" min="0" max="1000" class="text-center w-100 prodquantity" oninput="this.value = Math.round(this.value);" disabled/></td>';

                                                    echo '<td class="align-middle text-center">
                                                    <div class="custom-control custom-checkbox">
                                                    <input class="custom-control-input produtochk" type="checkbox" id="chkboxprodid-'.$row->id.'" class="produtochk" name="produtochk" data-productidckbx='.$row->id.'>
                                                    <label class="custom-control-label" for="chkboxprodid-'.$row->id.'"></label>
                                                    </div>
                                                    </td>';
                                                    $count++;
                                                }
                                            }

                                        }

                                        echo '</tr>';
                                    } ?>
                                </tbody>

and here is how I'm initializing the datatable :

var table = $('#example1').DataTable({
            "language": {
                "sProcessing":    "Procesando...",
                "sLengthMenu":    "Mostrar _MENU_ registos",
                "sZeroRecords":   "Não foram encontrados resultados",
                "sEmptyTable":    "Nenhum dado dísponivel nesta tabela",
                "sInfo":          "A mostrar registos de _START_ a _END_ de um total de _TOTAL_ registos",
                "sInfoEmpty":     "Mostrando registos de 0 a 0 de um total de 0 registos",
                "sInfoFiltered":  "(filtrado de um total de registos _MAX_)",
                "sInfoPostFix":   "",
                "sSearch":        "Pesquisar:",
                "sUrl":           "",
                "sInfoThousands":  ",",
                "sLoadingRecords": "A carregar...",
                "oPaginate": {
                    "sFirst":    "Primeiro",
                    "sLast":    "Último",
                    "sNext":    "Seguinte",
                    "sPrevious": "Anterior"
                },
                "oAria": {
                    "sSortAscending":  ": Ative para ordenar a coluna em ordem ascendente",
                    "sSortDescending": ": Ative para ordenar a coluna em ordem decrescente"
                }
            },
            'order': [[1, 'asc']],
            
        });

Answers

  • colincolin Posts: 15,163Questions: 1Answers: 2,588

    This section of the FAQ should help, it discusses delegated events,

    Cheers,

    Colin

This discussion has been closed.