• 0
Sign in to follow this  
Deizi Buganti

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

Question

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.

Edited by Deizi Buganti

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

<Penso que terá de usar uma estrutura de repetição, já agora não se esqueça do contador, que é fundamental! >

Guy_Fawkes_Mask_High_Resolution.png

Share this post


Link to post
Share on other sites
  • 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this