Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Ajax Y php

Estas en el tema de Ajax Y php en el foro de Javascript en Foros del Web. Hola muy buenas: Os comento, estoy haciendo un sistema de votos para comentarios con ajax. Todo funciona correctamente excepto una pequeña cosa que no soy ...
  #1 (permalink)  
Antiguo 26/08/2013, 12:16
 
Fecha de Ingreso: agosto-2011
Mensajes: 13
Antigüedad: 12 años, 8 meses
Puntos: 0
Ajax Y php

Hola muy buenas:

Os comento, estoy haciendo un sistema de votos para comentarios con ajax. Todo funciona correctamente excepto una pequeña cosa que no soy capaz de sacar.
La imagen es un antes y un despues de presionar "like o dislike" es decir, de votar.
La cuestion es que lo que quiero es que despues del voto, desaparezcan tanto "like como dislike" y aparezca solo el "Thanks for voting".
Aqui os dejo el codigo, a ver si alguien es capaz de echarme una mano.

UN saludo y gracias.

Votar.php
Código PHP:
<?php
$id 
$_GET['id'];
$name =  $_GET['name'];
 
include 
'../blog/content/conexion.php';
 
if (
$name == "up") {
    
$sql "UPDATE post SET up=up+1 WHERE ID = $id ";
} else {
    
$sql "UPDATE post SET down=down+1 WHERE ID =  $id";
}
 
mysql_query$sql); // Actualiza la base de datos
 // Vuelve a tomar los datos de la base actualizada
$recordset mysql_query("SELECT * FROM post WHERE ID = $id");
$entradas mysql_fetch_array($recordset);
 
//Esto es lo que le devuelve el PHP al AJAX para que actualice el HTML

echo "<a href='javascript:void(0)' class='vote' name='up' id='$id', $entradas[ID], onclick='vote(this.id, this.name)>up' , $entradas[up], </a> " ;

echo
"<a href='javascript:void(0)' class='vote' name='down' id='$id', $entradas[ID],  onclick='vote(this.id, this.name)>down' , $entradas[down], </a>Thanks For Voting ";
?>
ajax

Código:
function vote(id, name) {
  xmlhttp=new XMLHttpRequest();
 
  //Una vez que el servidor envía la respuesta, realiza lo que está dentro de esta función
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
   document.getElementById(id).innerHTML=xmlhttp.responseText;
    }
  }
 
  //Envía el pedido junto con las variables
  xmlhttp.open("GET","vote.php?id=" + id + "&name=" + name,true);
  xmlhttp.send();
}
y el html

Código HTML:
<div id="votar">
            <div id="vote">
             <?php echo "<a id='$articulo' onclick='vote(this.id, this.name)' name='up' href='javascript:void(0)'>Like</a>"; ?>/
             <?php echo "<a id='$articulo' onclick='vote(this.id, this.name)' name='down' href='javascript:void(0)'>DisLike</a>"; ?>/
             </div>
</div> 
  #2 (permalink)  
Antiguo 26/08/2013, 12:37
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Ajax Y php

Crea una tabla en php llamada VOTANTES, y verifica si el usuario(O la IP) Votaron, en ese caso muestras el tfv, en otro caso, no, deberia ir en php.
  #3 (permalink)  
Antiguo 26/08/2013, 12:41
 
Fecha de Ingreso: agosto-2011
Mensajes: 13
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Ajax Y php

No es eso lo que quiero hacer, no quiero controlar si alguien ha votado o no. Quiero que cuando alguien presione el voto like o dislike, estos dos desparezcan por el porcentaje de votos o un mensaje dando las gracias por el voto.

PD: Parece que la imagen no se ve. La subo de nuevo

Última edición por Dewill; 26/08/2013 a las 12:50
  #4 (permalink)  
Antiguo 26/08/2013, 14:45
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Ajax Y php

Uff mas facil todavia, solo debes crear una funcion que oculte el div "Vote"
añade estas dos lineas al final de tu codigo javascript
Código Javascript:
Ver original
  1. var div = document.getElementById("vote");
  2. div.innerHTML = "Gracias por votar.";
  #5 (permalink)  
Antiguo 26/08/2013, 15:49
 
Fecha de Ingreso: agosto-2011
Mensajes: 13
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Ajax Y php

Holy shit! funciona!

Gracias compañero.
  #6 (permalink)  
Antiguo 26/08/2013, 15:54
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Ajax Y php

!para eso estamos¡, a la orden.
  #7 (permalink)  
Antiguo 26/08/2013, 16:02
 
Fecha de Ingreso: agosto-2011
Mensajes: 13
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Ajax Y php

mmmm pasa algo, solo funciona en el primer post en el que voto... se podria hacer eso pero para todos los post que tengo?
  #8 (permalink)  
Antiguo 26/08/2013, 17:26
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Ajax Y php

creale un id unico y pasalo por Javascript,


Código PHP:
Ver original
  1. <div id="votar<?php echo $articulo; ?>">
  2.             <div id="vote">
  3.              <?php echo "<a id='$articulo' onclick='vote(this.id, this.name)' name='up' href='javascript:void(0)'>Like</a>"; ?>/
  4.              <?php echo "<a id='$articulo' onclick='vote(this.id, this.name)' name='down' href='javascript:void(0)'>DisLike</a>"; ?>/
  5.              </div>
  6. </div>

Eso hace que cada id, tenga el "ID" del articulo, ahora a tu javascript ponle


Código Javascript:
Ver original
  1. var div = document.getElementById("vote" + id);
  2. div.innerHTML = "Gracias por votar.";

!!Y listo¡¡

Última edición por omarinfinito; 27/08/2013 a las 16:48

Etiquetas: ajax, funcion, html, php, select, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:46.