Nueva pregunta

Pregunta:

Fecha: 11-01-2018 01:09:51 (En Español)

Checkbox en PHP[Resuelta]

Saludos.
Buenos Días.

Compañeros estoy tratando de grabar campos checkbox sin hasta ahora resultados positivo.

Agradezco mucho sus aportes para con este tema.

*-***************************************************************************
AQUI ABAJO EL CODIGO DEL FORMULARIO
*-***************************************************************************
<html>
	<head>
		<title>.: CRUD :.</title>
		<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
		<script src="js/jquery.min.js"></script>
	</head>
	<body>
	<?php include "php/navbar.php"; ?>
<div class="container" align="left">
<div class="row">
<div class="col-md-12">
		<h2>Registrar Clientes</h2>
<!-- Button trigger modal -->
  <a data-toggle="modal" href="#myModal" class="btn btn-default">Agregar</a>
<br><br>
  <!-- Modal -->
  <div class="modal fade" id="myModal" tabindex="-1" role="form" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title">Agregar</h4>
        </div>
        <div class="modal-body">
		
<form role="form" method="post" action="php/agregar.php">

<font color="blue">
<h2>Datos del Cliente</h2> 
</font>

  <div class="form-group">
    <label for="name">Nit / Cedula</label>
    <input type="text" class="form-control" name="codi" required placeholder="Introduce tu Nit/Cedula">
  </div>

  <div class="form-group">
    <label for="name">Cliente</label>
    <input type="text" class="form-control" name="name" required placeholder="Introduce El nombre del Cliente">
  </div>
  <div class="form-group">
    <label for="lastname">Telefono</label>
    <input type="text" class="form-control" name="lastname" >
  </div>
  <div class="form-group">
    <label for="phone">Cedular</label>
    <input type="text" class="form-control" name="phone" >
  </div>
  
  <div class="form-group">
    <label for="email">Correo Electronico</label>
    <input type="email" class="form-control" name="email" >
  </div>
  
  <div class="form-group">
    <label for="address">Direccion</label>
    <input type="text" class="form-control" name="address" >
  </div>

  <div class="form-group">
    <label for="ciud">Ciudad</label>
    <input type="text" class="form-control" name="ciud" >
  </div>
  
  <div class="form-group">
    <label for="phone">Permanencia</label>
           <select name="perm" class="form-control" id="perm" name="perm">
           <option value="N/A">N/A</option>
           <option value="Arriendo">Arriendo</option>
           <option value="Comodato">Comodato</option>
           <option value="Compra">Compra</option>
</select>
  </div>
  
    <div class="form-group"> 
	     <label for="feco">Fecha de Contrato</label> <input  type="date" class="form-control" name="feco" value="<?php echo date("Y-m-d");?>" >
    </div>

  <div class="form-group">
    <label for="name">Repr.Legal</label>
    <input type="text" class="form-control" name="repr" >
  </div>

  <div class="form-group">
    <label for="name">Cedula Repr.Legal</label>
    <input type="text" class="form-control" name="crep" >
  </div>

  <div class="form-group"> 
   <label for="feco">Fecha de Cumpleanos</label> <input  type="date" class="form-control" name="fecu" value="<?php echo date("Y-m-d");?>" >
  </div>

 <div class="form-group"/>
    <label for="segm">SEGMENTOS</label>   
	<form id="form1" name="form1" method="post" action="">
 <p><label> <input type="checkbox" name="segm[]" value="checkbox2" /> Empresa de Transporte</label>
    <label> <input type="checkbox" name="segm[]" value="checkbox3" /> Transportista </label> 
	<label> <input type="checkbox" name="segm[]" value="checkbox4" /> Distribucion Urbana</label> 
	<label> <input type="checkbox" name="segm[]" value="checkbox5" /> Empresa de Servicios</label> 
	<label> <input type="checkbox" name="segm[]" value="checkbox6" /> Transporte de Pasajeros</label> 
	<label> <input type="checkbox" name="segm[]" value="checkbox7" /> Paqueteo</label> 
	<label> <input type="checkbox" name="segm[]" value="checkbox8" /> Otro</label></p></p></p></p></p></p>	 
   <input type="text" class="form-control" name="segm" >        
  </div>
  
 
<font color="blue">
<hr width="80%" style="line-height:inherit" >
<h2>Responsable de Pago</h2> 
</font>

  <button type="submit" class="btn btn-default">Agregar</button>
  <a href="./ver.php" class="btn btn-default" >Regresar al Menu</a>  

  <button type="submit" class="btn btn-default">Listar</button>  
</form>
        </div>

      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->


<?php include "php/tabla.php"; ?>
</div>
</div>
</div>

<p>
  <script src="bootstrap/js/bootstrap.min.js"></script>
</p>
<p>&nbsp;</p>
<p>&nbsp; </p>
	</body>
</html>


*-***************************************************************************
AQUI ABAJO EL CODIGO PHP DONDE GRABAMOS A LA TABLA
*-***************************************************************************
<?php
//foreach ($_POST['segm'] as $segm); //

if(!empty($_POST)){

	if(isset($_POST["codi"]) &&isset($_POST["name"]) &&isset($_POST["lastname"]) &&isset($_POST["email"]) &&isset($_POST["address"]) &&isset($_POST["phone"]) &&isset($_POST["ciud"]) &&isset($_POST["perm"])  &&isset($_POST["segm"])  ){
	
		if( $_POST["codi"]!="" && $_POST["name"]!="" && $_POST["lastname"]!="" && $_POST["address"]!="" && $_POST["phone"]!="" && $_POST["ciud"]!=""  && $_POST["perm"]!=""   && $_POST["segm"]!=""  ){
			include "conexion.php";  		
			
			$sql = "insert into person(codi, name, lastname, email, address, phone, ciud, perm, segm, created_at) value  (\"$_POST[codi]\", \"$_POST[name]\", \"$_POST[lastname]\", \"$_POST[email]\", \"$_POST[address]\", \"$_POST[phone]\", \"$_POST[ciud]\", \"$_POST[perm]\", \"$_POST[segm]\", NOW())";
			$query = $con->query($sql);
			
			if($query!=null){
				print "<script>alert(\"Registro Agregado exitosamente.\");window.location='../ver.php';</script>";
			}else{
				print "<script>alert(\"No se pudo agregar el Registro.\");window.location='../ver.php';</script>";

			}
		}
	}
}

?>

Etiquetas: Bootstrap - Buscador - CRUD - Desarrollo - HTML - MySQL - PHP - PHP MySQLi - Pregunta - Software - Web Votos: 0 - Respuestas: 8 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 11-01-2018 03:24:17
    <html>
    
    <head>
    
    <title>Metodo de Pago</title>
    
    </head>
    
    <body>
    
    <form action="validar.php" method="post">
    
    <table>
    
    <tr>
    
    <td>Metodo de pago:</td><td></td></tr>
    
    <td><input type="radio" name="pago" value="convenir">A convenir</td></tr>
    
    <td><input type="radio" name="pago" value="efectivo">Efectivo</td></tr>
    
    <td><input type="radio" name="pago" value="transferencia">Transferencia Bancaria</td>
    
    <td></td></tr>
    
    <td><input type="submit" value="Enviar"></td></tr>
    
    </form>
    
    </table>
    
    </body>
    
    </html>
    
     
    
    El codigo para validar los datos en PHP:
    
     
    
    <?php
    
     
    
    $server = "localhost";
    
    $user = "root";
    
    $pass = ""; //la pass de tu base de datos
    
     
    
    $conexion = mysql_connect($server, $user, $pass);
    
    $db = mysql_select_db("sistema", $conexion);
    
     
    
    //capturar datos
    
    $pago = $_POST['pago'];
    
     
    
    //validar que se hayan ingresado datos
    
    if($pago == null){
    
    echo "Debe llenar todos los datos para poder continuar";
    
    exit;
    
    }
    
     
    
    //insertar
    
    $consulta = "insert into pago(forma_pago) values('$pago')";
    
    $result = mysql_query($consulta, $conexion);
    
     
    
    if($result){
    
    	echo "Se han ingresado los datos correctamente";
    
    }
    
    ?>

    este es un codigo viejo que hice hace tiempo y funciona el problema que tienes es como manejas los datos compara tu codigo con este y te daras cuenta
      Votos: 0 - Link respuesta
     
  • Fecha: 11-01-2018 16:43:03 Dale
    Jose Nassr

    Lo revisaré.
    Muchas gracias
      Votos: 0 - Link respuesta
     
  • Fecha: 12-01-2018 02:10:31 ok recuerda marcar como resuelto si te funciona   Votos: 0 - Link respuesta
     
  • Fecha: 12-01-2018 07:06:30 Hola amigo, veo varios errores en tu código, entre ellas tienes 2 etiquetas de apertura <form> y solo una de cierre, en cuanto a los checkbox despues de ellos en tu form, tienes un input con el mismo name que el de tu array de check's (segm), lo que puede planchar el valor de todos los checks seleccionados. Recuerda que al enviar un grupo de checks por POST se envia un array, por lo que cuando los recibas en en tu función PHP, debes de recorrer ese array, antes de realizar un insert. Es decir que $_POST['segm'] es un array con varios valores, no se cual sea la estructura de tu tabla donde vas a insertar, pero necesitaras una tabla relacional donde guardes cada valor de tu array de segmentos asociados a tu registro principal. Espero haberte ayudado.   Votos: 2 - Link respuesta
     
  • Fecha: 13-01-2018 01:31:49 Gracias, Jluis Castillo

    Esto ultimo que me mencionas es que no se como hacerlo.
    En el codigo php del formulario no se si esta bien escrito...
      Votos: 0 - Link respuesta
     
  • Fecha: 14-01-2018 11:32:51 Este es el script que graba a la base de datos. Pero tengo algo que no me deja grabar el registro y no se que sera.
    me saca el mensaje "No se pudo agregar el Registro." y no se cual sera el impase,

    *********************************************************************
    script que graba a la base datos.
    *********************************************************************

    <?php

    if(!empty($_POST))
    {
    if(isset($_POST["codi"]) &&isset($_POST["name"]) &&isset($_POST["lastname"]) &&isset($_POST["email"]) &&isset($_POST["address"]) &&isset($_POST["phone"]) &&isset($_POST["ciud"]) &&isset($_POST["perm"]) &&isset($_POST["segm"]) )
    {

    if( $_POST["codi"]!="" && $_POST["name"]!="" && $_POST["lastname"]!="" && $_POST["address"]!="" && $_POST["phone"]!="" && $_POST["ciud"]!="" && $_POST["perm"]!="" && $_POST["segm"]!="" )
    {
    include "conexion.php";

    $for_query = '';
    if(!empty($_POST["segm"]))
    {
    foreach($_POST["segm"] as $segm)
    {
    // $for_query .= $language . ', '; //
    $for_query .= $segm;

    $sql = "INSERT INTO person (segm) VALUES ('$for_query')" ;
    // $querys = $con->query($query);//
    }
    }
    }
    }
    }

    if($sql!=null){
    print "<script>alert(\"Registro Agregado exitosamente.\");window.location='../ver.php';</script>";
    }else{
    print "<script>alert(\"No se pudo agregar el Registro.\");window.location='../ver.php';</script>";
    }

    ?>

    *********************************************************************
    y este es el formulario con los campos a grabar
    *********************************************************************

    <div class="form-group"/>
    <label for="segm">SEGMENTOS</label>
    <form id="form1" name="form1" method="post" action="" >
    <p><input type="checkbox" name="segm[]" value="1" /> Empresa de Transporte</p>
    <p><input type="checkbox" name="segm[]" value="2" /> Transportista</p>
    <p><input type="checkbox" name="segm[]" value="4" /> Distribucion Urbana</p>


    <!-- <p><label> <input type="checkbox" name="segm[]" value="checkbox2" /> Empresa de Transporte</label>
    <label> <input type="checkbox" name="segm[]" value="checkbox3" /> Transportista </label>
    <label> <input type="checkbox" name="segm[]" value="checkbox4" /> Distribucion Urbana</label>
    <label> <input type="checkbox" name="segm[]" value="checkbox5" /> Empresa de Servicios</label>
    <label> <input type="checkbox" name="segm[]" value="checkbox6" /> Transporte de Pasajeros</label>
    <label> <input type="checkbox" name="segm[]" value="checkbox7" /> Paqueteo</label>
    <label> <input type="checkbox" name="segm[]" value="checkbox8" /> Otro</label></p></p></p></p></p></p> -->
    <!-- <input type="text" class="form-control" name="segm" id="segm" /> -->
    <!-- <td><input type="submit" name="button" id="button" value="Enviar" /></td> -->

    </div>


    Agradezco su comentarios sobre este tema.
      Votos: -1 - Link respuesta
     
  • Fecha: 15-01-2018 06:15:22 Hola amigo, déjame entender tu idea y corrigeme si me equivoco. Tienes un formulario con un grupo de checkbox, el cual vas a enviar por POST y cuando los recibas en tu función vas a formar una cadena, con el grupo de checks seleccionados y los insertaras en la BD, quiero suponer que en tu tabla la columna donde insertaras estos datos es de tipo varchar o text y con una longitud considerable. Pues bien por lo que veo en tu código, todo parece ir bien pero el INSERT no debe ir dentro del foreach donde recorres $_POST["segm"], de lo contrario estarias realizando tantos inserts como valores contenga tu array de segmentos, una ves que saques del foreach el insert, tienes que ejecutar el query, esta acción la tienes comentada en tu código, te recomiendo que intentes ordenar tu código de la siguiente manera:

    $for_query = '';
    if(!empty($_POST["segm"])){

    foreach($_POST["segm"] as $segm){
    $for_query .= $segm;
    }//termina foreach

    $sql = "INSERT INTO person (segm) VALUES ('$for_query')";
    $querys = $con->query($query);

    if($sql!=null){
    print "<script>alert(\"Registro Agregado exitosamente.\");window.location='../ver.php';</script>";
    }else{
    print "<script>alert(\"No se pudo agregar el Registro.\");window.location='../ver.php';</script>";
    }

    }//termina if

    Solo recorreras el arreglo de segmentos y realizaras el insert si el array de segmentos no esta vacío. De lo contrario no deberias realizar ninguna operación.

    Saludos amigo!
      Votos: 0 - Link respuesta
     
  • Fecha: 16-01-2018 23:44:33 Saludos
    Jluis Castillo

    Agradezco muchísimo tu colaboración.

    Si esa era la idea.
    Muchas Gracias !!!
    Un Abrazo.
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión