Foros del Web » Programando para Internet » Jquery »

Cambiar div sin recargar pag

Estas en el tema de Cambiar div sin recargar pag en el foro de Jquery en Foros del Web. Hola he estado leyendo muchos hilos sobre el tema, y esque lo que quiero es cuando le de por ejemplo a me gusta a un ...

  #1 (permalink)  
Antiguo 10/06/2014, 09:07
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Cambiar div sin recargar pag

Hola he estado leyendo muchos hilos sobre el tema, y esque lo que quiero es cuando le de por ejemplo a me gusta a un video de mi pag, aparezca un una frase del estilo GRACIAS POR VOTAR, sustituyendo el sitio donde estaba el formulario de votacion, todo esto sin que se recargue toda la pagina(que es lo que me pasa a mi) es decir solo el div ese. Lo que he estado probando ha sido esto y no me va :

Código Javascript:
Ver original
  1. <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  2. <script>
  3. function cargar(div, cadena)
  4. {
  5.      $(div).load(cadena);
  6. }
  7. </script>
  8.  
  9.  
  10. <input type="image" src="megusta.jpg"  onclick="cargar('.textogracias','Gracias por votar')"  name="like" value="megusta" />
  11.                 <input type="image" src="nomegusta.jpg"  onclick="cargar('.textogracias','Gracias por votar'))" name="nomegusta" value="nomegusta" />
que veis mal en el codigo para que no vaya?. (textogracias es div class del texto a cambiar). Un saludo
  #2 (permalink)  
Antiguo 10/06/2014, 09:27
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Cambiar div sin recargar pag

Para editar con JS en vez de coger el class debes coger por el id del div.
Para eso debes usar la opción document.getElementById("idDiv").innerHTML = "Contenido nuevo"

todo esto obviamente dentro de una función a la que le puedes pasar el idDiv por ejemplo si lo quieres hacer en varios sitios, o si no sin nada y escribes a mano el id del div

No he trabajado mucho con JS, pero espera que esto te sirva.
__________________
Siempre inmerso en nuevos proyectos.

Cuando estoy activo puedes verme en //LiveCoding
  #3 (permalink)  
Antiguo 10/06/2014, 12:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

Los elementos pueden ser tomados ya sea por su id, clase o etiqueta, de modo que por ese lado no hay problema. El error que cometes es intentar cargar un texto como si se tratara de una URI, ya que eso es lo que hace el método que usas.

En lugar de usar el método load(), usa html() para cambiar el contenido del elemento, o mejor aún, el método innerHTML como te indica Oracles pues es innecesario cargar una líbrería para utilizar un solo método.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 11/06/2014, 06:08
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

vale chicos, me funciona bien poniendolo como .html(), pero el problema persiste. Porque yo el onClick() lo meto dentro de un input submit del formulario de votos, entonces tu le das a megusta, sale el cambio de div Gracias por votar, pero 1 segundo despues se actualiza la pagina y eso es debido al hacer click en el submit del formulario que envia los datos. Se puede hacer de manera igual en un formulario para que no se actualice toda la pagina?
  #5 (permalink)  
Antiguo 11/06/2014, 09:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

Claro, podrías cancelar el evento submit que es el que se ejecuta cuando envías los datos del formulario para procesarse utilizando el método preventDefault y ya luego realizas el cambio, pero si no vas a enviar datos, no veo la necesidad de utilizar un formulario, basta con que utilices un simple elemento <button> y realices dicha acción, sin embargo, si vas a enviar algún datos, entonces hazlo con Ajax, así evitas que recargue la ventana.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 11/06/2014, 09:25
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

lo estoy intentando de esta forma:
Código Javascript:
Ver original
  1. <script language="javascript">
  2. $(document).ready(function() {
  3.    // Interceptamos el evento submit
  4.     $('#form, #fat, #fo3').submit(function() {
  5.   // Enviamos el formulario usando AJAX
  6.         $.ajax({
  7.             type: 'POST',
  8.             url: $(this).attr('action'),
  9.             data: $(this).serialize(),
  10.             // Mostramos un mensaje con la respuesta de PHP
  11.             success: function(data) {
  12.                 $('.mostrargracias').html(data);
  13.             }
  14.         })        
  15.         return false;
  16.     });
  17. })
actualiza el numero de votos pero se sigue actulizando la pagina, me va a esplotar la cabeza no creo que sea tan complicado xDD
  #7 (permalink)  
Antiguo 11/06/2014, 09:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

Prueba así:

Código Javascript:
Ver original
  1. $('#form, #fat, #fo3').submit(function(evento){
  2.     evento.preventDefault();
  3.     $.ajax({
  4.         url: $(this).attr('action'),
  5.         type: 'POST',
  6.         data: $(this).serialize(),
  7.         success: function(data) {
  8.             $('.mostrargracias').html(data);
  9.         }
  10.     });
  11. });

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 11/06/2014, 09:43
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

Nada, estoy probando y probando y no me funciona, de la otra manera que dices, como no mando datos, como podria crear dos botones de MEGUSTA - NOMEGUSTA , ppara que si el primer ha sido presionado sume 1 voto ala bd y lo mismo con el otro, seria un boton submit no? es decir lo mismo que estoy haciendo ahora..o de otra manera? gracias
  #9 (permalink)  
Antiguo 11/06/2014, 09:56
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

Para eso no es necesario usar un formulario, basta con que cuando pulses el botón, ejecutes el método Ajax y envíes un valor según el estado del botón. En el archivo que recepciona el valor, actualizas el campo de la tabla en la BD con el valor enviado y si deseas, retornas una respuesta, pues basta con que hagas el control del texto del botón con un valor interno que lo controle, 0 cuando no haya sido pulsado y 1 cuando lo pulses, solamente cambiarás el valor cada vez que este sea pulsado.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 11/06/2014, 11:56
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

Seria posible conseguirlo de la siguiente manera?, porque estoy intentandolo y tampoco me funciona:
HTML
Código HTML:
Ver original
  1. <input type="button" name="like" value="like" onsubmit=btnclick() />
JS:
Código Javascript:
Ver original
  1. function btnclick()
  2. {
  3.      codigo que mete en bd y actualiza etc etc
  4. }
esto no me funciona, es decir el boton al hacer click no responde ninguna funcion
  #11 (permalink)  
Antiguo 11/06/2014, 12:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

El evento submit es propio de los formularios, no de los botones u otros elementos. ¿Qué es lo que haces cuando pulsas un botón? La respuesta es obvia: Un clic (traducción de la palabra anglosajona click). Entonces, lo que debes de aplicar es el evento onclick. Un pequeño ejemplo puede clarificar las cosas:

Código HTML:
Ver original
  1. <button id = "ejemplo" data-estado = "no">Me gusta</button>

Código Javascript:
Ver original
  1. var boton = document.getElementById("ejemplo"),
  2.     idUsuario = document.getElementById("id_usuario").value;
  3.  
  4. boton.addEventListener("click", function(){
  5.     var estado = this.getAttribute("data-estado");
  6.  
  7.     if (estado == "no"){
  8.         this.innerText = "Ya no me gusta";
  9.         this.setAttribute("data-estado", "si");
  10.         estado = "si";
  11.     }
  12.     else{
  13.         this.innerText = "Me Gusta";
  14.         this.setAttribute("data-estado", "no");
  15.         estado = "no";
  16.     }
  17.  
  18.     $.ajax({
  19.         url: "cambiar.php",
  20.         type: "POST",
  21.         data: {
  22.             id: idUsuario,
  23.             valor: estado
  24.         }
  25.     });
  26. }, false);

Y en el archivo cambiar.php:

Código PHP:
Ver original
  1. $valor = mysql_real_escape_string(strip_tags($_POST['valor']));
  2. $id = mysql_real_escape_string(strip_tags($_POST['id']));
  3. mysql_query(sprintf('UPDATE tabla SET megusta = "%s" WHERE id = %d', $valor, $id));

Cuando pulses el botón, tomarás el valor del pseudo-atributo data-estado y lo evalúas, si es igual a "no", es decir, si todavía no se ha pulsado dicho botón, cambias el texto que contiene a "Ya no me gusta", el estado a "si" y haces lo contrario cuando el valor de data-estado sea distinto. Luego, mediante Ajax, envías el valor hacia el archivo PHP que actualizará el estado en la base de datos, enviándole el estado del botón como el identificador del usuario en cuestión para que solo a él le afecte el cambio. El identificador del usuario lo tomo de un elemento en el documento que contenga dicho dato, si no lo tienes, debes crearlo y asignarle el respectivo valor.

En el archivo PHP, desinfectas los datos de posible código malicioso y realizas la actualización del estado.

Un ejemplo sin base de datos:


Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #12 (permalink)  
Antiguo 12/06/2014, 05:25
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

sigo probando, sabes porque al pasar por el archivo votosbtn.php, no hace la consulta sql? sin embargo si que me devuelve la frase ¡gracias por votar!.

html:
Código HTML:
Ver original
  1. <div class="votobtn">
  2.             <form action="votosbtn.php?id=<?php echo $id ?>" method="post" id="fo3" name="fo3">  
  3.                 <input type="submit"   name="like" value="like" />
  4.                 <input type="submit"   name="dislike" value="dislike" />
  5.             </form>
  6.             </div>
js:
Código Javascript:
Ver original
  1. <script language="javascript">
  2. $(document).ready(function() {
  3.    // Interceptamos el evento submit
  4.     $('#form, #fat, #fo3').submit(function() {
  5.   // Enviamos el formulario usando AJAX
  6.         $.ajax({
  7.             type: 'POST',
  8.             url: $(this).attr('action'),
  9.             data: $(this).serialize(),
  10.             // Mostramos un mensaje con la respuesta de PHP
  11.             success: function(data) {
  12.                 $('.votobtn').html(data);
  13.             }
  14.         })        
  15.         return false;
  16.     });
  17. })  
  18. </script>
votosbtn.php:
Código PHP:
Ver original
  1. require_once ('conexionbasededatos');
  2.  
  3.  
  4. $id = $_GET['id'];
  5.  if(isset($_POST['like'])){
  6.  $sql_votos=('mete votos en like con el id ($id)');
  7.  $votos = mysql_query($sql_votos, $conexionbasededatos) or die(mysql_error());
  8.  }
  9.  if(isset($_POST['dislike'])){
  10.  $sql_votos=('mete votos en dislike con el id ($id)');
  11.  $votos = mysql_query($sql_votos, $conexionbasededatos) or die(mysql_error());
  12.  }
  13. echo "¡Gracias por votar!";
es decir me muestra Gracias por votar sin recargar la pagina pero no actualiza los votos en la bd
  #13 (permalink)  
Antiguo 12/06/2014, 12:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

¿Te das cuenta de que intentas recibir datos por dos métodos diferentes? O bien usas GET o POST, pero no los dos al mismo tiempo. Por otro lado, ¿por qué tienes dos botones de tipo submit en el formulario? Con uno es suficiente.

Hazlo como en el ejemplo que mostré y el identificador del usuario, guárdalo en un campo oculto si es que tu intención es no mostrarlo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #14 (permalink)  
Antiguo 12/06/2014, 14:36
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

hago lo que tu me dices pero no me recoge el dato del id:
Código HTML:
Ver original
  1. <input type="hidden" value="<?php $id ?>" name="ide" id="ide" />
Código Javascript:
Ver original
  1. $('#form, #fat, #fo3').submit(function() {
  2.     idVi = document.getElementById("ide").value;
  3. $.ajax({
  4.             type: 'POST',
  5.             url: $(this).attr('action'),
  6.             data: $(this).serialize(),
  7.                 id:idVi
  8.            success: function(data) {
  9.                 $('.votobtn').html(data);
  10.             }
  11.         })
votosbtn.php
Código PHP:
Ver original
  1. $id = mysql_real_escape_string(strip_tags($_POST['id']));
no agarra el id definiendolo encampo oculto y todo y no llega a hacer la consulta
  #15 (permalink)  
Antiguo 12/06/2014, 15:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

¿Será porque no lo estás imprimiendo?

Código HTML:
Ver original
  1. <input type="hidden" value="<?php echo $id ?>" name="ide" id="ide" />

Te faltó el echo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #16 (permalink)  
Antiguo 12/06/2014, 18:32
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

siento por ser tan cansino alexis pero me sigue sin funcionar xd y lo tengo que hacer como lo estoy intentando yo, he probado mil maneras. Al final al archivo receptor le paso la variable id por $_GET porque no me deja enviarsela debajo del- data: $(this).serialize(), -como post
y ademas me dirije al archivo receptor. Sin embargo si no pongo nada de id en ese trozo de ajax pasa directamente a esto
Código Javascript:
Ver original
  1. success: function(data) {
  2.                 $('.votobtn').html(data);
  3.             }
y muestra el mensaje --gracias id="1"-- es decir el archivo receptor recoge bien la id q le mando por $GET, el problema esque no hace la consulta por post
Código PHP:
Ver original
  1. $id = $_GET['id'];
  2.  if(isset($_POST['like'])){
  3.  $sql_votos=('mete votos en like con el id ($id)');
  4.  $votos = mysql_query($sql_votos, $conexionbasededatos) or die(mysql_error());
  5.  }
  6.  if(isset($_POST['dislike'])){
  7.  $sql_votos=('mete votos en dislike con el id ($id)');
  8.  $votos = mysql_query($sql_votos, $conexionbasededatos) or die(mysql_error());
  9.  }
  10. echo "¡Gracias por votar! id=$id";

se que esta mal que emplee $POST y GET en el mismo pero esque he probado muchisimas formass y n van, siento ser tan pesado, un saludo!
  #17 (permalink)  
Antiguo 12/06/2014, 20:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

Te sugiero que detenidamente vuelvas a ver el ejemplo que mostré, fíjate bien cómo es que envío los datos, recuerda que dentro del objeto literal del método Ajax, no puedes crear atributos, pero sí puedes añadirlos al objeto que asignas al atributo data, exactamente como lo hago en el ejemplo. Ojo, ahí sí hago uso del método POST pues vas a actualizar datos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #18 (permalink)  
Antiguo 13/06/2014, 05:09
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

hago lo mismo que tu , y parece que al clickar en los botones no funciona, quiza sea el evento listener
Código Javascript:
Ver original
  1. var boton1 = document.getElementById("ejemplo1"),
  2. var boton2 = document.getElementById("ejemplo2"),
  3. boton1.addEventListener("click", function(){
  4.     var estado = this.getAttribute("data-estado");
  5.     var idVi = this.getAttribute("data-ide");
  6.    
  7.     $.ajax({
  8.         url: "votosbtn.php",
  9.         type: "POST",
  10.         data: {
  11.             id: idVi,
  12.             valor: estado
  13.         }
  14.         success: function(data) {
  15.                 $('.votobtn').html(data);
  16.             }
  17.     });
  18. }, false);
Código HTML:
Ver original
  1. <button data-estado="like" data-ide="<?php echo $id ?>" id="ejemplo1" >Like</button>
  2. <button data-estado="dislike" data-ide="<?php echo $id ?>" id="ejemplo2"/>Dislike</button>
lo unico que hago es si el evento es del boton1 que le envie al receptor "like"+el id lo mismo hago con boton 2
  #19 (permalink)  
Antiguo 13/06/2014, 09:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

¿Por qué utilizas dos botones? En el ejemplo uso solo 1 y con ese basta. Lo que debes de mandar es el valor de data-estado del botón y como tu intención es incrementar la cantidad de 'Me Gusta', solamente te queda evaluar el estado enviado; si es igual a "si", incrementas en uno al valor previamente almacenado en la tabla, caso contrario, disminuyes dicho valor en uno.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #20 (permalink)  
Antiguo 13/06/2014, 09:52
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

pero porque necesito poner 2 botones para saber cuantos me gusta y cuantos no me gusta hay puestos. no me funciona el boton por mucho que apriete no hace caso como si no tubiera un listener y no tengo ni idea de porque, lo hago tal cual como tu como he puesto antes
  #21 (permalink)  
Antiguo 13/06/2014, 10:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

¿De casualidad estás colocando el código en la cabecera del documento? Si es así, te sugiero sacarlo de ahí y colocarlo justo antes de la etiqueta </body>. Esto es porque el código se ejecuta en orden descendente, si colocas el código JS antes que los elementos del documento, éstos últimos nunca se verán afectados pues el código JS cargará para elementos que aún no han sido cargados.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #22 (permalink)  
Antiguo 13/06/2014, 10:58
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

Tampoco, lo coloco fuera , dentro en todos los lados y sigue sin funcionar :(:(,incluso lo meto dentro de una funcion y la llamo desde el boton, con onclik="", pero nada de nada no se que mas intentar
  #23 (permalink)  
Antiguo 13/06/2014, 11:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

No se si entendiste lo que dije, lo que debes hacer es esto:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang = "es">
  3.     <head>
  4.         Contenido de la cabecera
  5.     </head>
  6.     <body>
  7.         Contenido del cuerpo del documento
  8.         <script type = "text/javascript>
  9.             Aquí va el código JS
  10.         </script>
  11.     </body>
  12. </html>

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #24 (permalink)  
Antiguo 13/06/2014, 11:16
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

Exacto estaba haciendo eso mismo pero sigue sin ir, el problema se centra en el
Código Javascript:
Ver original
  1. boton1.addEventListener("click", function(){
estoy segurisimo, porque es dar al boton y no hace ni caso como si no hubiera nada que lo llamara :(
  #25 (permalink)  
Antiguo 13/06/2014, 11:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

Revisa en consola (en Chrome, pulsa la tecla F12 y elije 'Console') si se muestra algún mensaje de error al momento de dar el clic.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #26 (permalink)  
Antiguo 13/06/2014, 11:52
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

no muestra ninguno como si no le diera al boton, el js no tendria que ir dentro de ningun function() no? no hace falta. Porque si no de que otra forma se podria hacer

Última edición por warywin; 13/06/2014 a las 11:57
  #27 (permalink)  
Antiguo 13/06/2014, 12:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

¿Podrías mostrar todo el código de ese archivo?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #28 (permalink)  
Antiguo 13/06/2014, 12:28
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

video.php:
Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  3. <title>mee</title>
  4. <link href="estyle.css" media="screen" rel="stylesheet" type="text/css" />
  5. <script type='text/javascript' src="jquery1.3.pack.js"></script>
  6. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  7.  
  8. </head>
  9.        <Por aqui parte de pagina></pag>
  10.    
  11.     <div class="votacion">
  12.             <div class="votobtn">
  13.              
  14.                 <button data-estado="like" data-ide="<?php echo $id ?>" id="ejemplo1" >Like</button>
  15.                 <button data-estado="dislike" data-ide="<?php echo $id ?>" id="ejemplo2"/>Dislike</button>
  16.                
  17.                 </div>          
  18.         </div>
  19.  
  20.         <!--form votar sin recargar-->
  21. <script type = "text/javascript">
  22.     var boton1 = document.getElementById("ejemplo1"),
  23.     var boton2 = document.getElementById("ejemplo2"),
  24.    
  25. boton1.addEventListener("click", function(){
  26.     var estado = this.getAttribute("data-estado");
  27.     var idVi = this.getAttribute("data-ide");
  28.    
  29.     $.ajax({
  30.         url: "votosbtn.php",
  31.         type: "POST",
  32.         data: {
  33.             id: idVi,
  34.             valor: estado
  35.         }
  36.         success: function(data) {
  37.                 $('.votobtn').html(data);
  38.             }
  39.     });
  40. }, false);
  41. boton2.addEventListener("click", function(){
  42.     var estado = this.getAttribute("data-estado");
  43.     var idVi = this.getAttribute("data-ide");
  44.    
  45.     $.ajax({
  46.         url: "votosbtn.php",
  47.         type: "POST",
  48.         data: {
  49.             id: idVi,
  50.             valor: estado
  51.         }
  52.         success: function(data) {
  53.                 $('.votobtn').html(data);
  54.             }
  55.     });
  56. }, false);
  57. <!-- fin ajax form-->
  58.  
  59. <mas pagina></pags>
  60. </body>
  61. </html>
votosbtn.php:

Código PHP:
Ver original
  1. $id = mysql_real_escape_string(strip_tags($_POST['id']));
  2.  $valor = mysql_real_escape_string(strip_tags($_POST['valor']));
  3.  
  4.  if(!strcmp($valor, "like"){
  5.  $sql_votos=('UPDATE videos SET nvotos=nvotos+1, likes=likes+1 WHERE id="'.$id.'"');
  6.  $votos = mysql_query($sql_votos, $conexionbd) or die(mysql_error());
  7.  }
  8.  if(!strcmp($valor, "dislike"){
  9.  $sql_votos=('UPDATE videos SET nvotos=nvotos+1, dislikes=dislikes+1 WHERE id="'.$id.'"');
  10.  $votos = mysql_query($sql_votos, $conexionbd) or die(mysql_error());
  11.  }
  12.  
  13. echo "¡Gracias por votar! id='$id'";
  #29 (permalink)  
Antiguo 13/06/2014, 12:36
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Cambiar div sin recargar pag

El problema está acá:

Código Javascript:
Ver original
  1. var boton1 = document.getElementById("ejemplo1"),
  2. var boton2 = document.getElementById("ejemplo2"),

La línea debe de terminar con un punto y coma, no con una coma pues en la línea siguiente, utilizas la palabra reservada var, produciéndose así el problema pues aún no se termina la línea anterior, aunque es más eficiente hacerlo así:

Código Javascript:
Ver original
  1. var boton1 = document.getElementById("ejemplo1"),
  2.     boton2 = document.getElementById("ejemplo2");

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #30 (permalink)  
Antiguo 13/06/2014, 13:07
Avatar de warywin  
Fecha de Ingreso: octubre-2013
Mensajes: 155
Antigüedad: 11 años
Puntos: 1
Respuesta: Cambiar div sin recargar pag

persiste, mirando la consola, veo que me salta 1 error

me ocurre en estas lineas--"Uncaught SyntaxError: Unexpected identifier "
Código Javascript:
Ver original
  1. success: function(data) {
  2.                 $('.votobtn').html(data);
  3.             }
Pero si borro estas lineas, si que veo que hace caso al boton pero me lanza otro error
"POST http://www.midominio.com/votosbtn.php 500 (Internal Server Error) "
send -> jquery.min.js:4
m.extend.ajax -> jquery.min.js:4
(anonymous function) -> referido a la funcion que hemos hecho nosotros con ajax js


.... aun asi estamos cada vez mas cerca

Última edición por warywin; 13/06/2014 a las 13:29

Etiquetas: formulario, input, javascript, js, pag
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 12:38.