botón
Publicado por Francisco (2 intervenciones) el 28/03/2017 18:26:35
Buenas,
Estoy haciendo una página web con unas fotografias y la gente vota, y tiene un botón contador que está hecho en ajax, php y mysql, el problema está cúando aprieto en botón y tengo que actualizar la página para suba el número al contador. ¡¡Necesito vuestra colaboración para solucionar el problema!!
Aquí dejo los códigos:
Este es el código php del botón:
Este es el código javascript del botón
Este es el fichero contador.php
Este es el fichero funciones.php
Saludos.
Estoy haciendo una página web con unas fotografias y la gente vota, y tiene un botón contador que está hecho en ajax, php y mysql, el problema está cúando aprieto en botón y tengo que actualizar la página para suba el número al contador. ¡¡Necesito vuestra colaboración para solucionar el problema!!
Aquí dejo los códigos:
Este es el código php del botón:
1
2
3
4
5
6
7
8
9
10
11
<?php
if(!$_GET){
$yourID = 1;
}else{
$yourID = $_GET['id'];
}
require ('funciones.php');
?>
<?php
echo '<button id="boton" data-id="1">Vota</button><span id="resultado">' . get_likes($yourID) . '</span>';
?>
Este es el código javascript del botón
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).ready(function () {
$('#boton').click(function () {
contador($(this).data('id'));
});
});
function contador(id) {
$.ajax({
url: 'contador.php',
type: 'GET',
dataType: 'json',
data: {id: id},
success: function (response) {
$('#resultado').html(response.votos);
$('#boton').prop('disabled',true);
},
});
}
Este es el fichero contador.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
require('conexion.php');
include('funciones.php');
$ip = getIp();
$yourID = $_GET['id'];
$query = "SELECT votos FROM encuesta WHERE id=" . $yourID . " limit 1;";
$result = mysqli_query($connect, $query);
$votos = null;
$data = array();
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
$votos = (int)$row['votos'];
$votos++;
$queryEncuesta = "UPDATE encuesta SET votos=" . $votos . " WHERE id=" . $yourID . ";";
mysqli_query($connect, $queryEncuesta);
$queryVotos = "INSERT INTO votos(id_encuesta,ip) VALUES (" . $yourID . ",'" . $ip . "');";
mysqli_query($connect, $queryVotos);
$data = array('votos' => $votos);
}
echo json_encode($data);
Este es el fichero funciones.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
function get_likes($id)
{
$connect = mysqli_connect("localhost", "root", "","votos");
$query = "SELECT votos FROM encuesta WHERE id='" . (int)$id . "';";
$result = mysqli_query($connect, $query);
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
if ($row['votos'] == "") {
return '0';
} else {
return $row['votos'];
}
}
mysqli_close($connect);
}
//// Función para obtener la IP
function getIp()
{
$ip = $_SERVER['REMOTE_ADDR'];
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
return $ip;
}
Saludos.
Valora esta pregunta
0