Foros del Web » Programando para Internet » PHP »

Ayuda con FORM

Estas en el tema de Ayuda con FORM en el foro de PHP en Foros del Web. hola mi problema es que me hice un form y luego un bucle donde muestra unas opciones mi codigo va asi el problema es en ...
  #1 (permalink)  
Antiguo 28/12/2009, 09:22
 
Fecha de Ingreso: diciembre-2009
Mensajes: 28
Antigüedad: 14 años, 4 meses
Puntos: 0
Ayuda con FORM

hola mi problema es que me hice un form y luego un bucle donde muestra unas opciones mi codigo va asi el problema es en el name="$var" y no se como recibir en el post lo tengo algo asi $conte[0] es el count de mi tabla en mysql
<?php

$preg="unic";
$i=0;
?>
<form name="examen" action="pagina2.php" method="post">
<tr>
while($i<$conte[0])
{
<td>a<INPUT type="checkbox" name="<?echo $preg.$i?>" value="1"></td>
<td>b<INPUT type="checkbox" name="<?echo $preg.$i?>" value="2"></td>
<td>c<INPUT type="checkbox" name="<?echo $preg.$i?>" value="3"></td>
<td>d<INPUT type="checkbox" name="<?echo $preg.$i?>" value="4"></td>
<td>e<INPUT type="checkbox" name="<?echo $preg.$i?>" value="5"></td>
}
<td><tr><INPUT type="submit" value="enviar"></tr></td>

</tr>
</form></table>

grax de antemano
  #2 (permalink)  
Antiguo 28/12/2009, 09:51
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Ayuda con FORM

tu explicacion es algo complicada.......

pero tu codigo no tiene sentido..... como haces ese while si no vuelves a habrir las etiquetas php......
de donde viene $conte[0] ??????

Espero respuestas.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 28/12/2009, 09:54
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Ayuda con FORM

Código PHP:
<?php

$num 
5;
//Solo es un ejemplo, la variable $num debe
//contener el numero de checkbox que quieras generar
?>
<form name="examen" action="pagina2.php" method="post">
<tr>
<?php
$letras 
"abcdefghijklmnopqrstuvwxyz";
for(
$i=1$i<=$num$i++)
{
    
$letra $letras[$i-1];
    echo 
"<td>$letra<INPUT type=\"checkbox\" name=\"box$i\" value=\"$i\" /></td>";
}

?>
<td><tr><INPUT type="submit" value="enviar"></tr></td>

</tr>
</form></table>
  #4 (permalink)  
Antiguo 28/12/2009, 09:56
 
Fecha de Ingreso: diciembre-2009
Mensajes: 28
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda con FORM

mira en bucle1 name="unic1" en bucle 2 name="unic2" y sigue asi
conte[0]=mysql_fectch_array(mysql_query("select count(*) from tabla"));
es que no se como recivir la informacion en el post intente algo asi pero no me muestra nada
Código PHP:

<?php
if (isset($_POST['$preg']))// tambien intente con unic1 
{
   
$postre $_POST['$preg'];
   
$n        count($postre);
   
$i        0;

   echo 
"Tus postres favoritos son: rn" .
        
"<ol>";
   while (
$i $n)
   {
      echo 
"<li>{$postre[$i]}</li> rn";
      
$i++;
   }
   echo 
"</ol>";
}
?>
grax por intetnar ayudarme no puedo solo
  #5 (permalink)  
Antiguo 28/12/2009, 10:01
 
Fecha de Ingreso: diciembre-2009
Mensajes: 28
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda con FORM

grax El-FeNiX pero el problema no es como generarlas sino como recibir los datos de los seleccionados en el post
  #6 (permalink)  
Antiguo 28/12/2009, 10:07
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con FORM

Dentro de $_POST[] tienes que poner el nombre del parámetro del POST que quieres capturar. Es decir, si el parámetro que quieres capturar se llama "postre" lo tienes que capturar así: $_POST["postre"];
  #7 (permalink)  
Antiguo 28/12/2009, 10:09
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Ayuda con FORM

Con tan pocos datos es difil hacer el script exacto pero te pongo un ejemplo y ya lo adaptas a lo que quiras

form.php
Código PHP:
<?php

$num 
5;
//Solo es un ejemplo, la variable $num debe
//contener el numero de checkbox que quieras generar
?>
<form name="examen" action="pagina2.php" method="post">
<tr>
<?php
$letras 
"abcdefghijklmnopqrstuvwxyz";
for(
$i=1$i<=$num$i++)
{
    
$letra $letras[$i-1];
    echo 
"<td>$letra<INPUT type=\"checkbox\" name=\"unic[$i]\" value=\"$i\" /></td>";
}

?>
<td><tr><INPUT type="submit" value="enviar"></tr></td>

</tr>
</form></table>
pagina2.php
Código PHP:
<?php
if (isset($_POST['unic']))
{
    
$array $_POST['unic'];
    if (!
is_array($array))
        die(
"Ha ocurrido un error, el valor 'unic' debe ser un array");
        
    echo 
"<p>Has seleccionado las siguientes casillas:</p><p>";
    foreach(
$array as $clave => $valor) {
        echo 
"$clave<br>";
    }
    echo 
"</p>";
}
?>
Tienes unos errores muy graves.

No puedes meter variables en comillas simple, si o haces php no procesa las variables si no que siempremente coje el nombre de la variable tal cual. Para que php "reemplace" el valor debe ir en comilladas dobles

Código PHP:
$ejemplo "mystring";

echo 
"<p>$ejemplo</p>"
echo '<p>$ejemplo</p>'
El resultado sera

Cita:
mystring

$ejemplo
Ten cuidado con eso.


En el formulario he puesto los valores de NAME con unic[$numero] asi sera reconocido como array al procesar el formulario en php.


Saludos
  #8 (permalink)  
Antiguo 28/12/2009, 10:12
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Ayuda con FORM

Estimado Mauro.. lo que te acaba de mostrar El-Fenix es correcto si lo que deseas es traer desde la base de datos, informacion (probablemente uno ID y OPCIONES) a una estructura de Select, checkbox o menus...

La consulta a tu base de datos en vez de
conte[0]=mysql_fectch_array(mysql_query("select count(*) from tabla"));

podrias modificar por:
Código PHP:
Ver original
  1. <select name="consulta">
  2.                 <option value="">-- Seleccione una consulta --</option>
  3.                 <?
  4.                 include("conn.php");
  5.                 $sql="SELECT id, consulta from tu_tabla order by id";
  6.                 $result=mysql_query($sql,$connection) or die(mysql_error());
  7.                 while($row=mysql_fetch_array($result))
  8.                 {
  9.                    
  10.                ?>
  11.                 <option value="<? echo $row['id'] ?>"><? echo $row['consulta']; ?> </option>
  12.                 <? } ?>
  13.               </select>

Si es eso lo que deseas hacer.. ahora, si quieres limitar el numero de consultas que debe traer, podrias utilizar la estructura FOR que te paso el amigo El-Fenix...

Tal vez no lo puedas hacer solo, pero debes intentarlo, investiga algo mas de esto que te pasamos como dato.

Y procura hacer tu consulta a los foreros de manera mas explicita y con el mayor numero de detalles, dado que aun no entiendo bien cual es tu objetivo...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #9 (permalink)  
Antiguo 28/12/2009, 10:12
 
Fecha de Ingreso: diciembre-2009
Mensajes: 28
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda con FORM

mejor les pongo todo el pedazo asi me entienden un poco mejor

Código HTML:
 <html>
<head>
    <title>Array en Forma :: PHP</title>
</head>
<body>
 <br />
<b>Selecciona tus postres favoritos:</b><br /><br />
<?php

$preg="unic";
$i=1;
?>
<form method="post" action="pagina2.php">
<input name="<?$preg.$i[]?>" type="checkbox" value="Helado de Vainilla">Helado de vanilla<br />
<input name="<?$preg.$i[]?>" type="checkbox" value="Pastel de Chocolate">Pastel de Chocolate<br />
<input name="<?$preg.$i[]?>" type="checkbox" value="Pay de elote">Pay de elote<br />
<input name="<?$preg.$i[]?>" type="checkbox" value="Bubulubu">Bubulubu<br />
<input name="<?$preg.$i[]?>" type="checkbox" value="Duraznos en almibar">Duraznos en almibar<br />
<input name="<?$preg.$i[]?>" type="checkbox" value="Fresas con crema">Fresas con crema<br />
<input name="send" type="submit" id="send" value="Enviar!">
</form>
</body>
</html> 
y el post es

Código PHP:
<?php
if (isset($_POST['unic1']))
{
   
$postre $_POST['unic1'];
   
$n        count($postre);
   
$i        0;

   echo 
"Tus postres favoritos son: rn" .
        
"<ol>";
   while (
$i $n)
   {
      echo 
"<li>{$postre[$i]}</li> rn";
      
$i++;
   }
   echo 
"</ol>";
}
?>
ojala con eso me puedan ayudar. al parecer no recivo ningun dato osea el $_post esta mal pero no se en que esta mal a mi parecer esta bien bueno grax de nuevo :)
  #10 (permalink)  
Antiguo 28/12/2009, 10:19
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con FORM

en este ultimo ejemplo tienes 6 checkboxes que se llaman "unic1", ya que $i no cambia. Por qué no los pones literalmente?
name="unic1"....
name="unic2"....
....
  #11 (permalink)  
Antiguo 28/12/2009, 10:20
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Ayuda con FORM

En tu ejemplo la variable $i siempre queda siendo uno.
Y como te ha explicado fenix para trabajar con checkbox en php se utilizan los array.
Es decir en tu formulario el nombre del checkbox deber ser array

<input type='checkbox' name='unic[]' value='x'>
<input type='checkbox' name='unic[]' value='y'>

Y donde lo recibes recorres el array con un foreach y solo quedaran llenos los valores que el usuario halla seleccionado.
Salu2.
  #12 (permalink)  
Antiguo 28/12/2009, 10:24
 
Fecha de Ingreso: diciembre-2009
Mensajes: 28
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda con FORM

Cita:
Iniciado por jordii84 Ver Mensaje
en este ultimo ejemplo tienes 6 checkboxes que se llaman "unic1", ya que $i no cambia. Por qué no los pones literalmente?
name="unic1"....
name="unic2"....
....
mira que quiero q funcione en uno para despues aplicarlo a un bucle y recien cambiara $i es por eso que no lo pondre leteral el problema esta en que no me muestra absolutamente nada no se q debo hacer
  #13 (permalink)  
Antiguo 28/12/2009, 10:24
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Ayuda con FORM

Exacto... lo que va al $_POST[] es el atributo VALUE, no el atributo NAME

Si seleccionas por ejemplo
"Helado de Vainilla"--- estaras enviando eso al POST, por ende, en ningun lugar reconoce esa variable como valida... utilizas una variable $i=1; pero nunca la multiplicas o incrementas.

Creo que tu problema es conceptual, no explicas cual es tu objetivo real, y pones nombres al tema que no son ciertos, las 2 ultimas, me parecen una falta de respeto, sobre todo porque eres tu el interesado
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #14 (permalink)  
Antiguo 28/12/2009, 10:32
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Ayuda con FORM

Aqui tienes lo que has dado antes correjido, busca en google como depurar php que ese es lo que te falla, y tan bien tienes muchos errores conceptuales, estaria bien que te informes mejor de php con algun libro o manual antes de querer hacer cosas mas complejas.


Mira los errores que has tenido y las cosas nuevas que no conozcas buscalas en google para saber como funcionan.

form.php
Código PHP:
 <html>
<head>
    <title>Array en Forma :: PHP</title>
</head>
<body>
 <br />
<b>Selecciona tus postres favoritos:</b><br /><br />
<?php

$preg
="unic";
$i=0;
?>
<form method="post" action="pagina2.php">
<input name="<?php echo $preg.'['.$i++.']'?>" type="checkbox" value="Helado de Vainilla">Helado de vanilla<br />
<input name="<?php echo $preg.'['.$i++.']'?>" type="checkbox" value="Pastel de Chocolate">Pastel de Chocolate<br />
<input name="<?php echo $preg.'['.$i++.']'?>" type="checkbox" value="Pay de elote">Pay de elote<br />
<input name="<?php echo $preg.'['.$i++.']'?>" type="checkbox" value="Bubulubu">Bubulubu<br />
<input name="<?php echo $preg.'['.$i++.']'?>" type="checkbox" value="Duraznos en almibar">Duraznos en almibar<br />
<input name="<?php echo $preg.'['.$i++.']'?>" type="checkbox" value="Fresas con crema">Fresas con crema<br />
<input name="send" type="submit" id="send" value="Enviar!">
</form>
</body>
</html>

pagina2.php
Código PHP:
<?php
if (isset($_POST['unic']))
{
   
$array $_POST['unic'];
    if (!
is_array($array))
        die(
"Ha ocurrido un error, el valor 'unic' debe ser un array");

   echo 
"Tus postres favoritos son: " .
        
"<ol>";
   
    foreach(
$array as $valor) {
        echo 
"<li>$valor</li>";
    }
   echo 
"</ol>";
}
?>

Saludos
  #15 (permalink)  
Antiguo 28/12/2009, 10:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 29
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda con FORM

Pues si primero quieres que funcione en uno, pruebalo solo con uno. El POST tiene 6 atributos llamados unic1 y seguramente se está haciendo la picha un lío.
@loncho_rojas, al $_POST va un atributo llamado como el "NAME" con el valor de "VALUE". En este caso:$_POST["unic1"] vale "Helado de Vainilla".
  #16 (permalink)  
Antiguo 28/12/2009, 10:38
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Ayuda con FORM

Cita:
Iniciado por loncho_rojas Ver Mensaje
Exacto... lo que va al $_POST[] es el atributo VALUE, no el atributo NAME

Si seleccionas por ejemplo
"Helado de Vainilla"--- estaras enviando eso al POST, por ende, en ningun lugar reconoce esa variable como valida... utilizas una variable $i=1; pero nunca la multiplicas o incrementas.

Creo que tu problema es conceptual, no explicas cual es tu objetivo real, y pones nombres al tema que no son ciertos, las 2 ultimas, me parecen una falta de respeto, sobre todo porque eres tu el interesado
Eso es lo que me faltaba por oir, a menos que te haya entendido mal jeje

al post se manda como clave el atributo name y como valor el atributo value por lo que

$_POST[$atributo_name] contine $atributo_value

Si quieres probar como funciona la superglobal $_POST prueba este codigo en un archivo php que reciba un formulario

Código PHP:
echo '<pre>';
print_r($_POST);
echo 
'</pre>'
Saludos
  #17 (permalink)  
Antiguo 28/12/2009, 10:41
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Ayuda con FORM

jordii84
Cita:
@loncho_rojas, al $_POST va un atributo llamado como el "NAME" con el valor de "VALUE". En este caso:$_POST["unic1"] vale "Helado de Vainilla".
Es lo que dije... pero no habia incremento del $i

Lo de FeNix está mas acertado para incrementar los NAMES, pero valga, un FOR seria una mejor opcion, si es eso el objetivo.. en fin... insisto, no era problema de FORM.. si no de concepto..
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #18 (permalink)  
Antiguo 28/12/2009, 10:43
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Ayuda con FORM

Sip El-FeNix... entendiste mal

Lo que dije es que no la va a reconocer, dado que intenta incrementar una $i

pero en realidad no lo hace.. espero haber aclarado mi post
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
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:41.