Foros del Web » Programando para Internet » PHP »

Insertar múltiples tablas por "CheckBox"

Estas en el tema de Insertar múltiples tablas por "CheckBox" en el foro de PHP en Foros del Web. He echo el siguiente código que hace la inserción de varias tablas por medio de un array en caso halla seleccionado un checkbox: Código HTML: ...
  #1 (permalink)  
Antiguo 14/08/2014, 14:08
Avatar de miguelsirna  
Fecha de Ingreso: enero-2012
Ubicación: Perú
Mensajes: 17
Antigüedad: 8 años, 4 meses
Puntos: 0
Pregunta Insertar múltiples tablas por "CheckBox"

He echo el siguiente código que hace la inserción de varias tablas por medio de un array en caso halla seleccionado un checkbox:

Código HTML:
<form action="validar_checkbox.php" method="post">
<table width="28%" border="1" align="center">
  <tr>
     <td>Nombre</td>
    <td><input type="text" name="cliente" id="cliente" placeholder="codigo de cliente" /></td>
  </tr>
  <tr>
    <td>Requerimientos:</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><input name="checkbox[]" type="checkbox" id="checkbox" value="arroz" />Arroz</td>
    <td><input name="valor" type="text" id="valor" placeholder="Cantidad" value="" /></td>
  </tr>
  <tr>
    <td><input name="checkbox[]" type="checkbox" id="checkbox" value="fideo" />Fideo</td>
    <td><input name="valor" type="text" id="valor" placeholder="Cantidad" value="" /></td>
  </tr>
  
  <tr>
    <td><input name="checkbox[]" type="checkbox" id="checkbox" value="sinvalor" />Input sin valor</td>
    <td></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="button" id="button" value="Insertar" /></td>
  </tr>
</table>
</form> 
Código PHP:
<?php
require_once('conexion.php');
if(
$_POST['checkbox'] != "")
{
       if(
is_array($_POST['checkbox']))
         {
              
// realizamos el ciclo
              
while(list($key,$value) = each($_POST['checkbox'])) 
           {
            
$cliente=$_POST['cliente'];
            
$valor $_POST['valor'];
            
$sql[email protected]mysql_query("INSERT INTO requerimiento (cliente, requerimiento, valor) VALUES ('$cliente','$value','$valor')");
              }
          }
}

if(
$sql){
echo 
'<h1>Se han agregado las tablas</h1><br><a href="">ir atrás</a>';}
else{
echo 
'<h1>No se ha podido agregar las tablas</h1><br><a href="">ir atrás</a>';}
?>
Pasa que yo quiero que cada tabla que se inserte aveces tendrá un valor, como por ejemplo Arroz cuanto de arroz quiere el cliente si 100Kg 200Kg para ello se le pone un valor en algunos casos no es necesario pero no se como hacer para que se inserte la tabla y ponga el valor correspondiente de cada una

Última edición por miguelsirna; 14/08/2014 a las 14:13
  #2 (permalink)  
Antiguo 14/08/2014, 14:24
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 12 años, 5 meses
Puntos: 35
Respuesta: Insertar múltiples tablas por "CheckBox"

Segun tu ejemplo , te tocaria llamar a cada variable por separado y recibirlas de igual manera.
Código HTML:
Ver original
  1. <td><input name="chkarroz" type="checkbox" id="checkbox" value="arroz" />Arroz</td>
  2.     <td><input name="txtarroz" type="text" id="valor" placeholder="Cantidad" value="" /></td>
  3.   </tr>
  4.   <tr>
  5.     <td><input name="chkfideo" type="checkbox" id="checkbox" value="fideo" />Fideo</td>
  6.     <td><input name="txtfideo" type="text" id="valor" placeholder="Cantidad" value="" /></td>
  7.   </tr>
  #3 (permalink)  
Antiguo 14/08/2014, 14:32
Avatar de miguelsirna  
Fecha de Ingreso: enero-2012
Ubicación: Perú
Mensajes: 17
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Insertar múltiples tablas por "CheckBox"

Pero si es asi entonces tendría que crear muchas variables en la DB o no?

Acá hay un ejemplo de una web que hace eso:

Última edición por miguelsirna; 14/08/2014 a las 14:41
  #4 (permalink)  
Antiguo 14/08/2014, 15:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 12 años, 5 meses
Puntos: 35
Respuesta: Insertar múltiples tablas por "CheckBox"

Por eso te puse que en tu ejemplo seria asi.
Si haces un consulta de los productos que tienes para vender en tu BD.
Seria algo asi mas o menos.
Código PHP:
Ver original
  1. foreach ( $productosBD as $productoIndividual){
  2.  
  3. echo '<td><input name="checkbox[]" type="checkbox" id="checkbox" value="$productoIndividual" />$productoIndividua</td>';
  4. echo '<td><input name="txt'.$productoIndividual.'" type="text" id="txt'.$productoIndividual.'" value="" /></td>'
  5.  
  6. }

Y la recogida de los datos asi.

Código PHP:
Ver original
  1. <?php
  2. $productosSeleccionados = $_POST['checkbox'];
  3. foreach($productosSeleccionados as $producto){
  4. $var='txt'.$producto;
  5. $valor=$_POST['$var'];
  6. //en $producto esta el producto seleccionado y en $valor el valor dado.
  7. }
  8. ?>

Última edición por maxpower2008; 14/08/2014 a las 15:28 Razón: mejorar el ejemplo
  #5 (permalink)  
Antiguo 15/08/2014, 02:11
Avatar de miguelsirna  
Fecha de Ingreso: enero-2012
Ubicación: Perú
Mensajes: 17
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Insertar múltiples tablas por "CheckBox"

Claro te entiendo pero en caso quiera hacerlo manualmente?



Tu código lo he puesto arriba, pero no se como hacer que tome txt1 txt2 y así consecutivamente, creo que el proceso es muy parecido al primero de los checkbox dame una idea haber yo también iré pensandolo

  #6 (permalink)  
Antiguo 15/08/2014, 11:08
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 12 años, 5 meses
Puntos: 35
Respuesta: Insertar múltiples tablas por "CheckBox"

Creo q seria asi, los nombres de los inputs son iguales al valor del checkbox anteponiendole la palabra txt.
Código PHP:
Ver original
  1. $var='txt'.$value;
  2. $valortxt=$_POST['$var'];
  3. //$valortxt contiene los valores de las cajas te texto

la variable valor que intentas recibir por _POST no existe en tu formulario, asi que estas cometiendo un error ahi.
No utilizo ese ciclo while each pero entiendo que $key tiene el indice del array y $value el contenido asi que nos debe interesar el contenido que es $value donde pasan los valores del checkbox seleccionado "1" si presiono arroz, "2" si presiono fideo etc...

La variable $cliente la puedes recibir antes del ciclo.
Salu2.
  #7 (permalink)  
Antiguo 17/08/2014, 22:34
Avatar de miguelsirna  
Fecha de Ingreso: enero-2012
Ubicación: Perú
Mensajes: 17
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Insertar múltiples tablas por "CheckBox"

Claro pero aun sigo sin entender como meter el valor debido a la consulta, y si declaro la variable asi?

Código PHP:
<?php
    
if (isset($_POST['submit'])) {
        if(
$_POST['checkbox'] != "")
            {
                if(
is_array($_POST['checkbox']))
                {
                     
// realizamos el ciclo
                     
while(list($key,$value) = each($_POST['checkbox'])) 
                    {
                        
$cliente=$_POST['cliente'];
                        
$sql[email protected]mysql_query("INSERT INTO deporte (cliente, requerimiento, valor) VALUES ('$cliente','$value','$var')");
                    }
                }
            }
            if(
$sql){
                echo 
'Se han agregado las tablas';
                }
            else{
                echo 
'No se ha podido agregar las tablas';
                }
    }
?>
<form action="" method="post">
    <table width="28%" border="1" align="center">
      <tr>
        <td>Nombre</td>
        <td><input type="text" name="cliente" id="cliente" placeholder="codigo de cliente" /></td>
      </tr>
      <tr>
        <td>Requerimientos:</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input name="checkbox[]" type="checkbox" id="checkbox" value="1" />Arroz</td>
        <td><input name="valor[<?php $var=1;echo $var;?>]" type="text" id="1" placeholder="Cantidad" value="" /></td>
      </tr>
      <tr>
        <td><input name="checkbox[]" type="checkbox" id="checkbox" value="2" />Fideo</td>
        <td><input name="valor[<?php $var=2;echo $var;?>]" type="text" id="2" placeholder="Cantidad" value="" /></td>
      </tr>
      <tr>
        <td><input name="checkbox[]" type="checkbox" id="checkbox" value="sinvalor" />Input sin valor</td>
        <td></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="submit" id="submit" value="Enviar" /></td>
      </tr>
    </table>
</form>

Última edición por miguelsirna; 17/08/2014 a las 23:55

Etiquetas: checkbox, múltiple, mysql+consulta
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:10.