Ir para conteúdo
Fórum Script Brasil
  • 0

[RESOLVIDO] Como fazer um contador de clicks PHP, HTML, MYSQL


Deizi Buganti

Pergunta

Boa tarde,

Primeiramente, estou usando o  Framework CodeIgniter e uso também o Bootstrap. 

Agora,  em uma de minhas páginas eu tenho uma imagem que é mapeada (utilizo a tag map) conforme abaixo:

<img src="<?php echo base_url('/assets/midia/ambientes/parque.png');?>" alt="Parque" usemap="#Map" />
	<map name="Map" id="Map">
		<area alt="Sol" id="sol" href="<?php echo base_url('assets/midia/videos/video.mp4');?>" class="html5lightbox" title="Sol" shape="rect"  coords="52,11,169,114"/>
	</map>

No caso, tenho a imagem de um parque no qual a área dessa imagem que tem o sol, é "clicável", quando a mesma for clicada ela abre um vídeo.

Como eu poderia fazer para que quando o usuário clicasse nessa área (sol), além de abrir o vídeo, fosse atualizado no banco de dados (mysql) a minha tabela, onde eu tenho o nome da imagem e uma variável que receberia a contagem dos cliques (qtdclick), tabela:

CREATE TABLE `preferencia` (
  `codpreferencia` int(11) NOT NULL,
  `nomeimg` varchar(200) NOT NULL,
  `qtdclick` int(11) NOT NULL
)

Eu preciso dessa contagem para depois poder gerar alguns gráficos de preferência dos usuários para colocar em um artigo. Desse modo, preciso que a contagem somente aconteça quando ocorrer o click na área citada.

Vi que isso deve ser feito em PHP, até encontrei alguns exemplos, mas não se encaixaram nisso que eu preciso.

Se alguém puder me ajudar, agradeço.

Editado por Deizi Buganti
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom, vou postar a solução que consegui hoje, depois de tanto testar e testar ... 

Javascript:

<script type="text/javascript">
			$(document).ready(function(){
		        $(".html5lightbox").click(function(){
		                $.ajax({
		                        url: '<?= base_url(); ?>' + 'index.php/contaclick',
		                        type: 'POST',
		                        data: {valorid:$(this).attr('id')},
		                        success: function(msg){
		                            if(msg == 'ok'){
		                                jQuery.fn.reset = function(){
		                                        $(this).each(function(){ this.reset();});
		                                    }
		                            }
		                            }
		                    });
		                return false;
		            });
		    });     
</script>

O meu Controller "contaclick.php":

$this->load->model('conta');
$this->conta->contar();
echo "ok";

E o Model "conta.php":

public function contar() {
		$query = $this->db->query('SELECT qtdclick FROM preferencia WHERE nomelink="'.$this->input->post('valorid', TRUE). '" LIMIT 1');
		$row = $query->row();
		$qtd = $row->qtdclick;
		
		$qtd = $qtd+1;
		
		$this->db->where('nomelink', $this->input->post('valorid', TRUE));
		$this->db->update('preferencia', array(
				'qtdclick' => $qtd
		));
}

Se houver alguma sugestão e/ou maneira de otimizar fico à disposição para discutir.  :D

 

Boa noite.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...