Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] checkbox con ajax

Estas en el tema de checkbox con ajax en el foro de Jquery en Foros del Web. Hola amigos. estoy haciendo un formulario con un checkbox. Código HTML: <form name= "form" id= "form" method= "post" action= "insertar.php" class= "clase_insertar" > <input name= ...
  #1 (permalink)  
Antiguo 24/02/2014, 11:37
 
Fecha de Ingreso: septiembre-2013
Mensajes: 87
Antigüedad: 10 años, 7 meses
Puntos: 1
checkbox con ajax

Hola amigos. estoy haciendo un formulario con un checkbox.

Código HTML:
<form name="form" id="form" method="post" action="insertar.php" class="clase_insertar">
<input name="destacado" type="checkbox" id="destacado" checked="checked">
<input type="submit" name="enviar" id="enviar" value="enviar">
</form> 
}

y tengo el archivo insertar.php que inserta el formulario en la base de datos de la siguiente manera:
Código PHP:
if ($_POST['destacado'] == "on") { $destacado "si"; } else { $destacado "no"; }

mysqli_query($conexion,"INSERT INTO post (destacado) VALUES ('$destacado')"); 
Ahí funciona bien, la cosa es que en realidad yo envio los datos con ajax, asi:

$(".clase_insertar").submit(function(event){
event.preventDefault();

var d=$(this).find("#destacado").val();

$.ajax({
async:true,
type: "POST",
dataType: "html",
contentType: "application/x-www-form-urlencoded",
url: "insertar.php",

data:{destacado:d},

error: function(jqXHR, textStatus){
alert("Se produjo un error: " + textStatus);
}
});
});


y de esta manera no se me envia bien. O sea, si el checkbox esta chequeado o no, siempre se inserta un si en la base de datos. como puedo modificar el javascript para arreglarlo?
  #2 (permalink)  
Antiguo 24/02/2014, 12:31
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 6 meses
Puntos: 36
Respuesta: checkbox con ajax

Código Javascript:
Ver original
  1. $(".clase_insertar").submit(function(event){
  2.         event.preventDefault();
  3.  
  4.         var d=$(this).find("#destacado").is(':checked');
  5.  
  6.         $.ajax({
  7.             async:true,
  8.             type: "POST",
  9.             dataType: "html",
  10.             contentType: "application/x-www-form-urlencoded",
  11.             url: "insertar.php",
  12.            
  13.             data:{destacado:d},
  14.            
  15.             error: function(jqXHR, textStatus){
  16.             alert("Se produjo un error: " + textStatus);
  17.             }
  18.         });
  19.  
  20.     });

Código PHP:
Ver original
  1. if ($_POST['destacado'] == true) { $destacado = "si"; } else { $destacado = "no"; }
  2.  
  3. mysqli_query($conexion,"INSERT INTO post (destacado) VALUES ('$destacado')");

Intenta, así.
Saludos
  #3 (permalink)  
Antiguo 24/02/2014, 13:20
 
Fecha de Ingreso: septiembre-2013
Mensajes: 87
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: checkbox con ajax

muchas gracias amigo, le cambie como pusiste ahi pero igual no me funciona. sigue de la misma manera
  #4 (permalink)  
Antiguo 24/02/2014, 14:25
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 6 meses
Puntos: 36
Respuesta: checkbox con ajax

El error que hay, es que al crear al pedir los datos con Jquery este los convierte en cadena

Entonces:

Código Javascript:
Ver original
  1. $(".clase_insertar").submit(function(event){
  2.         event.preventDefault();
  3.  
  4.         var d=$(this).serialize();
  5.  
  6.         $.ajax({
  7.             async:true,
  8.             type: "POST",
  9.             dataType: "html",
  10.             url: "insertar.php",
  11.             data:{'destacado':d},
  12.            
  13.             success: function(data){
  14.                 alert(data);
  15.             }
  16.         });
  17.  
  18.     });

Intenta con eso

Saludos
  #5 (permalink)  
Antiguo 02/03/2014, 10:35
 
Fecha de Ingreso: septiembre-2013
Mensajes: 87
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: checkbox con ajax

muchisimas gracias amigo. La verdad asi tampoco funcionaba, pero intenté escribir la variable de esta manera y me funciono:

var d=$(this).find("#destacado").serialize();

le tuve que agregar lo de find("#destacado"). y me funcionó. muchisimas gracias!!!

Etiquetas: ajax, checkbox
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 11:51.