Foros del Web » Programando para Internet » PHP »

Problema captura de datos formulario

Estas en el tema de Problema captura de datos formulario en el foro de PHP en Foros del Web. Hola a todos: Tengo un formulario que genero a raiz de una consulta en la Base de datos de este tipo: Código PHP: while( $fila  ...
  #1 (permalink)  
Antiguo 09/12/2009, 09:34
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Problema captura de datos formulario

Hola a todos:

Tengo un formulario que genero a raiz de una consulta en la Base de datos de este tipo:

Código PHP:
while($fila mysqli_fetch_array($resultado1)){

echo 
'<input id="check[]" name="check[]" type="checkbox" value="'.$fila[2].'" />';
echo 
'<input id="marca[]" name="marca[]" type="text" size="10" />';
echo 
$fila[2].'<br />';


Y quiero recoger en otro archivo .php donde se envia el formulario, solo el campo de texto de los elementos marcados. Quiero recoger el texto de la variable marca[] solo si check[] esta marcado. Eso por cada linea. que me pinta el while.

Hasta ahora recogia las variables de este tipo con un foreach. Pero no se como hacerlo con 2 variables. Para luego crear un insert en la bd. por cada uno de los registros seleccionados, pero solo de los marcados.

A ver si me orientais un poco.
Saludos.
  #2 (permalink)  
Antiguo 09/12/2009, 09:44
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: Problema captura de datos formulario

Holas!

Creo que si estás creando los campos (check y text) al mismo tiempo, en teoría tienen ambos los mismos índices, no? Si es así, haciendo un foreach sea al array de check o text, te servirá para entrar en el que no sea el elegido para el foreach. Eso sí, debes agregar una variable numérica dentro del foreach para accesar al elemento del otro array. Aunque todo eso se solucionaría si trabajas con el clásico for no más ^^...

Código PHP:
# este es el modulo que recibe los datos

$checks $_POST["check"];
$marcas $_POST["marca"];

# modo 1
$i 0;
foreach (
$checks as $micheck)
{
  if (
$micheck)
  {
    
$mimarca $marcas[$i];
    
// haces lo que tienes que hacer con la marca
  
}
  
$i++;
}

# modo 2
for ($i 0$i count($checks); $i++)
{
  if (
$checks[$i])
  {
    
$mimarca $marcas[$i];
    
// haces lo que tienes que hacer con la marca
  
}

__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 09/12/2009, 09:48
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema captura de datos formulario

Creo que te entiendo voy a probarlo.
  #4 (permalink)  
Antiguo 09/12/2009, 09:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema captura de datos formulario

Si vas a tener iguales cantidades de check como de marca siempre puedes hacer un loop con un for e ir añadiendola en la base de datos. Ejemplo
Código PHP:
Ver original
  1. for($i=0; $i<count($_POST["check"]); $i++){
  2.   echo $_POST["check"][$i] . " - " . $_POST["marca"][$i] . "<br />";
  3. }

Edito: Escribí un poco tarde
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 09/12/2009, 09:54
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: Problema captura de datos formulario

Cita:
Iniciado por abimaelrc Ver Mensaje
Edito: Escribí un poco tarde
A mí también siempre me pasa
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #6 (permalink)  
Antiguo 09/12/2009, 09:59
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema captura de datos formulario

Muchas gracias a los dos, me funciona correctamente.
  #7 (permalink)  
Antiguo 09/12/2009, 13:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema captura de datos formulario

No me funciona tan bien como parecia...

Resulta que de la variable check[] solo me pasa solo los valores chequeados, mientras de lavariable marca[] tiene todas las lineas ya tengan dato o no... No me sirve para recoger lo el valor de marca[] cuando check[] esta marcado.

De la forma que exponeis si tengo 4 lineas cada una con un checkbox y un campo de texto...
Y selecciono el primer checkbox y relleno el campo marca...
y selecciono el tercer checkbox y relleno el 3º campo marca...

La variable check[] tiene los valores:
check[0] = on
check[1] = on

mientras que marca[] tiene:

marca[0] = texto introducido
marca[1] = nada
marca[2] = texto introducido
marca[3] = nada

y no concuerdan. teniendo en cuenta que para uno macado puede estar el campo vacio.

saludos.
  #8 (permalink)  
Antiguo 09/12/2009, 13:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema captura de datos formulario

En ese caso todos los texto que esten vacios puedes usar una condición para que los elimine, por ejemplo
Código PHP:
Ver original
  1. $marca = array();
  2. foreach($_POST["marca"] as $v){
  3.   if(!empty($v)){
  4.   $marca[] = $v;
  5. }
  6. for($i=0; $i<count($_POST["check"]); $i++){
  7.   echo $_POST["check"][$i] . " - " . $marca[$i] . "<br />";
  8. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 09/12/2009, 13:49
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema captura de datos formulario

Ya habia pensado en eso, pero la cosa es que un campo de texto puede estar vacio y lo tengo que recoger si esta marcado el check.
  #10 (permalink)  
Antiguo 09/12/2009, 13:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema captura de datos formulario

Un resuelve, puede ser que antes de enviar la información, si la persona marco y el campo este vacio, con javascript llenes el campo con algun caracter especial y luego verificas si el campo esta vacio o no y borras con PHP el caracter especial si lo encuentra.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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 08:58.