Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Formulario con checkbox condicionado

Estas en el tema de Formulario con checkbox condicionado en el foro de Javascript en Foros del Web. Tengo un formulario que tiene dos campos parecidos nombre 1 y nombre 2, ahora agregue un checkbox para que cuando este seleccionado repita el valor ...
  #1 (permalink)  
Antiguo 07/05/2015, 23:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 17
Antigüedad: 17 años, 8 meses
Puntos: 0
Formulario con checkbox condicionado

Tengo un formulario que tiene dos campos parecidos nombre 1 y nombre 2, ahora agregue un checkbox para que cuando este seleccionado repita el valor que se pondra en el campo nombre1 y cuando no este seleccionado solicite un valor al campo2. ¿Alguien me podria ayudar al respecto?

<form action="<?php echo $editFormAction; ?>" method="post"></form>
<input name="nombre1" id="nombre1" type="text" onClick="popup()" class="validate[required]">
<input name="repite" type="checkbox" value="" checked="CHECKED" />
<input name="nombre2" id="nombre2" type="text" onClick="popup()" class="validate[required]">
</form>
  #2 (permalink)  
Antiguo 08/05/2015, 04:49
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Formulario con checkbox condicionado

Lo primero es que tienes la etiqueta form cerrada antes de los inputs.

Si he entendido bien lo que quieres, te valdría con añadir el evento onclick al checkbox (onclick="check_repite(this);" por ejemplo) y con javascript comprobar si esta marcado o no:

Código PHP:
<form action="<?php echo $editFormAction?>" method="post">
    <input name="nombre1" id="nombre1" type="text" onClick="popup()" class="validate[required]">
    <input name="repite" type="checkbox" value="" checked="CHECKED" onclick="check_repite(this);"  />
    <input name="nombre2" id="nombre2" type="text" onClick="popup()" class="validate[required]">
</form>
<script>
function check_repite(input)
{
    if (input.checked)
    {
        document.getElementById("nombre2").value = "";
    }else{
        document.getElementById("nombre2").value = document.getElementById("nombre1").value;
    }
}
</script>
  #3 (permalink)  
Antiguo 09/05/2015, 10:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 17
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario con checkbox condicionado

Gracias por responder jpint, pero como hago para llevar esa condicion de javascript que me diste a un INSERT de mysql

$insertSQL = sprintf("INSERT INTO nombres (id, nombre1, nombre2) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['ip'], "text"),
GetSQLValueString($_POST['id'], "text"),
GetSQLValueString($_POST['nombre1'], "int"),
GetSQLValueString($_POST['nombre2'], "int"));

Gracias por tu ayuda
  #4 (permalink)  
Antiguo 09/05/2015, 15:55
 
Fecha de Ingreso: agosto-2006
Mensajes: 17
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario con checkbox condicionado

Estuve pensando en esta solución pero me da error en mysql [object HTMLInputElement]

Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Checkbox condicionado</title>
  5.     <link rel="stylesheet" type="text/css" href="css/estilos.css">
  6.     <script type="text/javascript" src="js/jquery.js"></script>
  7.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. </head>
  9. <body>
  10.     <div class="container">
  11.         <h1>Checkbox condicionado</h1>
  12.         <div class="formulario">
  13.             <form method="post" action="2.php">
  14.                 <label>Nombre1:</label><br/>
  15.                 <input type="text" name="nombre1" id="nombre1" size="30"><br/>
  16.                 <label>Repetir:</label><br/>
  17.                 <input name="checkbox" id="checkbox" type="checkbox" value="1" /><br/>
  18.                 <label>Nombre2:</label><br/>
  19.                 <input type="text" name="nombre2" id="nombre2" size="30"><br/>
  20.                 <input type="button" value="Ingresar datos" onclick="javascript:EnviarDatos();"><br/>
  21.             </form>
  22.             <div id="mensaje">Ingresar datos</div>
  23.         </div>
  24.         <script type="text/javascript">
  25.             function EnviarDatos(){
  26.                        
  27.                         $("#checkbox_comprobar").click(function() {
  28.                            
  29.                             if($("#checkbox").is(':checked')) {
  30.                                
  31.                             var nombre1 = document.getElementById('nombre1').value;
  32.                             var nombre2 = document.getElementById('nombre1').value;
  33.                            
  34.                             } else {
  35.                             var nombre1 = document.getElementById('nombre1').value;
  36.                             var nombre2 = document.getElementById('nombre2').value;
  37.                             }
  38.                         });
  39.                    
  40.  
  41.                 $.ajax({
  42.                     type:'POST',
  43.                     url:'2.php',
  44.                     data:('nombre1='+nombre1+'&nombre2='+nombre2),
  45.                     success:function(respuesta){
  46.                         if (respuesta==1){
  47.                             $('#mensaje').html('Tu mensaje se ha enviado correctamente');
  48.                             document.getElementById('nombre1').value="";
  49.                             document.getElementById('nombre2').value="";
  50.                         }
  51.                         else{
  52.                             $('#mensaje').html('Los datos no han sido ingresados');
  53.                         }
  54.                     }
  55.  
  56.                 })
  57.             }
  58.         </script>
  59.     </div>
  60. </body>
  61. </html>

Última edición por edwinv; 09/05/2015 a las 16:02
  #5 (permalink)  
Antiguo 09/05/2015, 16:38
 
Fecha de Ingreso: agosto-2006
Mensajes: 17
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario con checkbox condicionado

Creo que me complique y busque el camino mas dificil pero lo logre corrijo el codigo anterior

Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Checkbox condicionado</title>
  5.     <link rel="stylesheet" type="text/css" href="css/estilos.css">
  6.     <script type="text/javascript" src="js/jquery.js"></script>
  7.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. </head>
  9. <body>
  10.     <div class="container">
  11.         <h1>Checkbox condicionado</h1>
  12.         <div class="formulario">
  13.             <form method="post" action="2.php">
  14.                 <label>Nombre1:</label><br/>
  15.                 <input type="text" name="nombre1" id="nombre1" size="30"><br/>
  16.                 <label>Repetir:</label><br/>
  17.                 <input name="checkbox" id="checkbox" type="checkbox" value="1" /><br/>
  18.                 <label>Nombre2:</label><br/>
  19.                 <input type="text" name="nombre2" id="nombre2" size="30"><br/>
  20.                 <input type="button" value="Ingresar datos" onclick="javascript:EnviarDatos();"><br/>
  21.             </form>
  22.             <div id="mensaje">Ingresar datos</div>
  23.         </div>
  24.         <script type="text/javascript">
  25.             function EnviarDatos(){
  26.                    
  27.                            
  28.                             if($("#checkbox").is(':checked')) {
  29.                                
  30.                             var nombre1 = document.getElementById('nombre1').value;
  31.                             var nombre2 = document.getElementById('nombre1').value;
  32.                            
  33.                             } else {
  34.                             var nombre1 = document.getElementById('nombre1').value;
  35.                             var nombre2 = document.getElementById('nombre2').value;
  36.                             }
  37.  
  38.                 $.ajax({
  39.                     type:'POST',
  40.                     url:'2.php',
  41.                     data:('nombre1='+nombre1+'&nombre2='+nombre2),
  42.                     success:function(respuesta){
  43.                         if (respuesta==1){
  44.                             $('#mensaje').html('Tu mensaje se ha enviado correctamente');
  45.                         }
  46.                         else{
  47.                             $('#mensaje').html('Los datos no han sido ingresados');
  48.                         }
  49.                     }
  50.  
  51.                 })
  52.             }
  53.         </script>
  54.     </div>
  55. </body>
  56. </html>
  #6 (permalink)  
Antiguo 11/05/2015, 04:43
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Formulario con checkbox condicionado

ok, si utilizas jquery puedes enviar los datos en un array json(lo cual me parece mas correcto) y ahorrarte algo de codigo si no utilizas document.getElementById:

Código PHP:
function EnviarDatos(){

    if($(
"#checkbox").is(':checked')) {       
        var 
valor_nombre1 = $("#nombre1").val();
        var 
valor_nombre2 = $("#nombre1").val();                    
    } else {
        var 
valor_nombre1 = $("#nombre1").val();
        var 
valor_nombre2 = $("#nombre2").val();
    }

    var 
datos = {nombre1valor_nombre1nombre2valor_nombre2};

    $.
ajax({
        
type:'POST',
        
url:'2.php',
        
data:(datos),
        
success:function(respuesta){
            if (
respuesta==1){
                $(
'#mensaje').html('Tu mensaje se ha enviado correctamente');
            }else{
                $(
'#mensaje').html('Los datos no han sido ingresados');
            }
        }

    });


Última edición por jpint; 11/05/2015 a las 08:54 Razón: Había un signo de exclamación ! en la linea del if que no debía estar

Etiquetas: checkbox, formulario, php
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 07:55.