Jump to content
violin101

Atualizar automaticamente COUNT

Recommended Posts

Caros amigos, saudações...

 

Por favor, peço desculpa em recorrer novamente a ajuda dos amigos, não persistindo no erro, mas infelizmente não consigo solucionar este problema.

 

Já tentei usar Auto Refresh e dentre outras funções pesquisadas na Internet, mas nenhuma me ajudou a resolver o problema.

 

Conforme imagem anexada, preciso realizar a SOMA de quantas imagens já foram anexadas num limite de 20 imagens no total.

 

Estou usando Codeigniter para desenvolver o sistema, abaixo o Código fonte, do Controller, Model e da View.

 

controller -> imoveis.php

<?php

    function editar($id = null)
    {
        if (!is_numeric($id)) {     
            $this->session->set_flashdata('error', 'Item não pode ser encontrado, parâmetro não foi passado corretamente.');
            redirect(base_url().'admin/imoveis/');
        }   

        if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'eImoveis')) {
            $this->session->set_flashdata('error', 'Você não tem permissão para editar imóveis.');
            redirect(base_url());
        }

        $this->load->library('form_validation');
        $this->data['custom_error'] = '';

        if ($this->form_validation->run('imoveis') == false) {
            $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false);
        } else {

            $data = array(
                'titulo' => $this->input->post('titulo'),
                ...
                'clientes_idClientes' => $this->input->post('clientes_idClientes'),                 
                'categorias_idCategorias' => $this->input->post('categorias_idCategorias'),
                'transacao_idTransacao' => $this->input->post('transacao_idTransacao'),
                'cidades_idCidades' => $this->input->post('cidadesId'),
                'usuarios_idUsuarios' => $this->session->userdata('id') //pega o ID do usuário logado                
            );

            if ($this->imoveis_model->edit('imoveis', $data, 'idImoveis', $this->input->post('idImoveis')) == true) {
                $this->session->set_flashdata('success', 'Imóvel editado com sucesso, você pode continuar incluindo mais detalhes a esse imóvel!');
                redirect(base_url().'admin/imoveis'); 
                 //Linha abaixo temporariamente ignorada.
                 //.'admin/imoveis/editar/'.$this->input->post('idImoveis'));
            } else {
                $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro</p></div>';
            }
        }

        $this->data['result'] = $this->imoveis_model->getById($id);
        $this->data['servicos'] = $this->imoveis_model->getServicos($id);
        $this->data['destaques'] = $this->imoveis_model->getDestaque($id);
        $this->data['anexos'] = $this->imoveis_model->getAnexos($id);
        
        //Traz a quantidade de Imagens por Imóvel da MODEL
        $this->data['qtdimg'] = $this->imoveis_model->count_anexos($id);
     
        $this->load->model('cidades_model');
        $this->data['cidade'] = $this->cidades_model->getActive('cidades','cidades.idCidades,cidades.nomeCidade,cidades.estadoCidade');

        $this->data['view'] = 'admin/imoveis/editarImoveis';
        $this->load->view('admin/tema/topo', $this->data);

    }    


?>

 

model -> Imoveis_model.php

<?php

  //Faz a SOMA da quantidade de imagem por imóvel
    public function count_anexos($id){
        $sql = "SELECT an.idAnexos, an.imoveis_idImoveis, im.idImoveis, COUNT(an.imoveis_idImoveis) AS total
                  FROM imoveis im
            INNER JOIN anexos an ON an.imoveis_idImoveis = im.idImoveis
                 WHERE an.imoveis_idImoveis = '$id' ";
        $result = $this->db->query($sql);
        return $result->row()->total;
    }  

?>

 

view -> editarImoveis.php

                        <!--Anexar Imagens do Imóvel-->
                        <div class="tab-pane" id="tab4">          
                            <div class="span12" style="padding: 1%; margin-left: 0;">
                                <div class="span12 well" style="padding: 1%; margin-left: 0" id="form-anexos">
                                    <form id="formAnexos" enctype="multipart/form-data" action="javascript:;" accept-charset="utf-8" method="post">
                                      <div class="span10">                                
                                          <input type="hidden" name="idOsServico" id="idOsServico" 
                                                 value="<?php echo $result->idImoveis?>" />
                                          <label style="font-size:14px; font-weight:bold; color:#3F3F3F;">Imagens</label>
                                          <input type="file" class="span12" name="userfile[]" id="userfile[]" 
                                                 multiple="multiple" size="20" />
                                      </div>
                                      
                                      <div class="span2">
                                          <label for="">&nbsp;</label>
                                          <button class="btn btn-success span12">
                                            <i class="icon-white icon-plus"></i> Anexar</button>
                                      </div>
                                    </form>  
                                    &nbsp;    
                                </div>                          
                
                                <div class="span12" style="background:#DAECF2; height:30px; margin-top:-28px;
                                   margin-left: 0; border: 1px solid #D8D8D8;">
                                   
                              <!-- Mostro a quantidade de imagens anexadas -->
                                   <p>Anexou: <b><?php echo $qtdimg; ?></b> de 20 imagens.</p>
                                  
                                   <p style="font-size:13px; margin:5px 0 0 10px;"><strong>Aviso!</strong> 
                                     Extensões permitidas: <strong>jpg|jpeg|JPG|JPEG</strong>. Tamanho máximo: <strong>750x500</strong> para a Imagem.
                                  </p> 
                                </div>

                                <div class="span12" id="divAnexos" style="margin-left: 0; margin-top:10px; margin-bottom:30px;">
                                    <?php
                                      $link = "";
                                      $max = '20'; //define a quantidade de linha na tabela
                                      $regLinha = '5';//quantidade de registro por linha
                                      $i = ceil($max / $regLinha);
                                      $j = 1;
                                      $z = 0;
                                      echo "<table class='table' id='tblAnexos'>";
                                      echo "<tr>";
                                      foreach ($anexos as $a) {
                                        if ($a->thumb == null){
                                            $thumb = base_url().'assets/img/icon-file.png';
                                            $link = base_url().'assets/img/icon-file.png';
                                          } else {
                                            $thumb = base_url().'assets/anexos/thumbs/'.$a->thumb;
                                            $link = $a->url.$a->anexo;                                           
                                        }

                                        echo '<td width="10%">
                                              <a href="#modal-anexo" imagem="'.$a->idAnexos.'" link="'.$link.'" role="button" class="btn anexo" data-toggle="modal"><img src="'.$thumb.'" alt=""><p align="center">'. $a->anexo .'</p>
                                              </a>                                             
                                              </td>';
                                        $z++;

                                        if($z == $regLinha and $j < $i){
                                          echo "</tr>";
                                          echo "<tr>";
                                          $z = 0;
                                          $j++;
                                        }
                                        if($z == $regLinha and $j == $i){
                                          echo "</tr>";
                                        }                                        
                                       
                                      } //Fim do foreach                                   
                                      echo "</table>";                                    
                                    ?>
                                </div>                   

                            </div>

                        </div><!--Fim da div:tab4 -->    


<script type="text/javascript">
      //Adicionar Anexos - Imagens 
      $("#formAnexos").validate({            
          submitHandler: function( form ){       
            var dados = $( form ).serialize();
            var dados = new FormData(form); 
            $("#form-anexos").hide('1000');
            $("#divAnexos").html("<div class='progress progress-info progress-striped active'><div class='bar' style='width: 100%'></div></div>");
                $.ajax({
                  type: "POST",
                  url: "<?php echo base_url();?>admin/imoveis/anexar",
                  data: dados,
                  mimeType:"multipart/form-data",
                  contentType: false,
                  cache: false,
                  processData:false,
                  dataType: 'json',
                  success: function(data)
                  {
                    if(data.result == true){
                        $("#divAnexos" ).load("<?php echo current_url();?> #divAnexos" );
                        $('input[type=file]').val(null);
                    }
                    else{
                      $("#divAnexos").html('<div class="alert fade in"><a href="<?php echo base_url()?>admin/imoveis" class="close">x</a><strong>Atenção!</strong> '+data.mensagem+'</div>');
                      $('input[type=file]').val(null);                   
                    }
                  },
                  error : function() {
                    $("#divAnexos").html('<div class="alert alert-danger fade in"><a href="<?php echo base_url()?>admin/imoveis" class="close">x</a><strong>Atenção!</strong> Ocorreu um erro. Verifique se você anexou o(s) arquivo(s).</div>');                     
                  }
                
                  });

                  $("#form-anexos").show('1000');
                  return false;
                }            
        });
        

       //Excluir Anexos - Imagens
       $(document).on('click', '.anexo', function(event) {
           event.preventDefault();
           var link = $(this).attr('link');
           var id = $(this).attr('imagem');
           var url = '<?php echo base_url(); ?>admin/imoveis/excluirAnexo/';
           $("#div-visualizar-anexo").html('<img src="'+link+'" alt="">');
           $("#excluir-anexo").attr('link', url+id);
       });

       $(document).on('click', '#excluir-anexo', function(event) {
           event.preventDefault();
           var link = $(this).attr('link'); 
           $('#modal-anexo').modal('hide');
           $("#divAnexos").html("<div class='progress progress-info progress-striped active'><div class='bar' style='width: 100%'></div></div>");

           $.ajax({
                  type: "POST",
                  url: link,
                  dataType: 'json',
                  success: function(data)
                  {
                    if(data.result == true){
                        $("#divAnexos" ).load("<?php echo current_url();?> #divAnexos" );
                    }
                    else{
                        alert(data.mensagem);
                    }
                  }
            });
       });     
</script>

 

Grato,

 

Cesar

telaAnexos_1.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By SECONDSS
      boa noite, preciso entregar algumas questões até daqui a pouco,meu tempo está corrido e gostaria da ajuda de vocês para resolver essa questão. obrigado desde já!

      QUESTÃO 16 -

      Desenvolva um programa utilizando PHP e exibir os resultados desse programa que tenha todas as classes suficientes para que:
      Represente o nome completo de uma pessoa, composto de três strings (nome próprio, nome do meio e nome da família). 
      ATENÇÃO - 
      Escreva nessa classe o método rubrica que retorna somente as iniciais do nome completo em caracteres minúsculos, Escreva nessa classe o método assinatura que retorna as iniciais dos nomes próprio e do meio (com pontos) Escreva nessa classe um método que retorne o nome de família completo. Por exemplo, se o nome da pessoa representado por essa classe for “Jack Mill Dam”, o método rubrica deve retornar ”jmd” e o método assinatura deve retornar ”J.M. Dam”. Para facilitar, considere armazenar os três nomes em strings separadas.
    • By duarte.php
      Boa noite, pessoal, estou fazendo meu tcc (nível técnico kkk) e preciso de ajuda com uma conexão com o banco.
       
      Fiz um formulário para consultar empréstimos em uma biblioteca através do rm (id) e exibir os dados que estão cadastrados neste rm. 
      Estou com dificuldades para que os dados sejam puxados e exibidos na página. 
       
      Esta é a parte que pede o RM no html
      <h4 class="title">Insira o seu RM: </h4> <input type="text" name="rm" class="form-control" required/>  
      Este é o código php
      <?php $rm = $_POST['rm']; include("conecta.php"); $busca = mysql_query("SELECT * FROM tb_locador WHERE rm='$rm'"); $dado = mysql_fetch_array($busca); $nome = $dado['nome']; $ano = $dado['ano']; $curso = $dado['curso']; $tel = $dado['tel']; echo "RM: " . $rm . "<br>"; echo "Nome do locador: ".$nome. "<br>"; echo "Curso do locador: ".$curso. "<br>"; echo "Ano de início do curso: ".$ano. "<br>"; echo "Telefone do locador: ".$tel. "<br>"; ?> Até então, o único dado exibido é o RM, como faço para exibir o nome, curso, ano e telefone? 
       
    • By guzulino
      Então... eu preciso inserir uma paulada de dados em um banco de dados de vez em quando, eu até consigo importar de um CSV pro banco, mas eu preciso fazer isso através do php e eu não tenho nem ideia de como fazer isso, procurei por aqui e não achei, se alguém tem alguma resposta ou referência, manda o link que eu vou dar uma olhada. Valeu.
    • By Guss
      Agradeço quem puder me ajudar a responder essa questão de PHP <3.
      Desenvolva um programa utilizando PHP e  exibir os resultados desse programa que tenha todas as classes suficientes para que:
       
      Represente o nome completo de uma pessoa, composto de três strings (nome próprio, nome do meio e nome da família). 
       
      Escreva nessa classe o método rubrica que retorna somente as iniciais do nome completo em caracteres minúsculos,  Escreva nessa classe o método assinatura que retorna as iniciais dos nomes próprio e do meio (com pontos)  Escreva nessa classe um método que retorne o nome de família completo.  Por exemplo, se o nome da pessoa representado por essa classe for “Marijuana Pepsi Jackson”, o método rubrica deve retornar ”mpj” e o método assinatura deve retornar ”M.P.Jackson”. Para facilitar, considere armazenar os três nomes em strings separadas.
    • By Guss
      Boa noite galera, to com um trabalho para entregar daqui a pouco e gostaria da ajuda de vocês a me ajudar a resolver essa questão:
      Desenvolva um programa utilizando PHP para exibir os resultados desse programa que tenha todas as classes suficientes para que:
       
      Exista uma classe DiferencaData, que possui um método chamado calculaDias, que recebe como parâmetro duas datas e calcula a diferença em dias entre essas datas. Considere que sempre a primeira data fornecida é maior do que a segunda. Considere para efeitos de simplificação que todo mês tem 30 dias e um ano com 365 dias
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.