Foros del Web » Programando para Internet » PHP »

Como mostrar solo campos con valores?

Estas en el tema de Como mostrar solo campos con valores? en el foro de PHP en Foros del Web. Tengo un formulario en donde el usuario tiene 4 opciones,pero si quiere puede ingresar 2 opciones,3 ,1 o todas las opciones.Este es mi problema:si el ...
  #1 (permalink)  
Antiguo 27/03/2007, 15:09
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Como mostrar solo campos con valores?

Tengo un formulario en donde el usuario tiene 4 opciones,pero si quiere puede ingresar 2 opciones,3 ,1 o todas las opciones.Este es mi problema:si el usuario elige la opcion 1 y 2.Como hago para que el archivo php solo reciba esos datos y me muestre:
Código PHP:
echo "Resultado opcion1:".$_POST["campo1"];
echo 
"Resultado opcion2:".$_POST["campo2"]; 
obviamente me los mostrara con los datos que ingreso el usuario.el problema que tengo es que el archivo php igual me muestra el valor de la opcion 3 y 4 de esta forma:
Código PHP:
echo "opcion1:".$_POST["campo1"];//valor recibido
echo "opcion2:".$_POST["campo2"];//valor recibido
echo "opcion3:";/*muestra el mensaje que contiene el echo con caracteres en blanco*/
echo "opcion4:";/*muestra el mensaje que contiene el echo con caracteres en blanco*/ 


Como puedo solucionar ese problema?,pense hacer un if en el archivo php,pero nose me ocurre como haria la validacion de solo mostrar los echo con las variables que tendran la informacion.
gracias.

formulario html

Opcion1<input type="text" name="campo1"></br>
Opcion1<input type="text" name="campo2"></br>
Opcion1<input type="text" name="campo3"></br>
Opcion1<input type="text" name="campo4"></br>

pagina.php
Aca recibo lo enviado desde el formulario.

echo "opcion1:".$_POST["campo1"];
echo "opcion2:".$_POST["campo2"];
echo "opcion3:".$_POST["campo3"];
echo "opcion4:".$_POST["campo4"];
  #2 (permalink)  
Antiguo 27/03/2007, 15:15
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Como mostrar solo campos con valores?

Eso lo solucionas con la función empty(), recibiendo las variables de esta forma:
Código PHP:
<?php
$campo1 
trim$_POST["campo1"] );
$campo2 trim$_POST["campo2"] );
$campo3 trim$_POST["campo3"] );
$campo4 trim$_POST["campo4"] );

if( !empty( 
$campo1 ) )
   echo 
"opcion1:".$campo1;
if( !empty( 
$campo2 ) )
   echo 
"opcion2:".$campo2;
if( !empty( 
$campo3 ) )
   echo 
"opcion3:".$campo3;
if( !empty( 
$campo4 ) )
   echo 
"opcion4:".$campo4;
?>
Para más información hacerca de la función empty() checa este enlace:
http://www.php.net/manual/es/function.empty.php
también utilice trim() por si es que al usuario se le ocurrio meter espacios com caracteres:
http://www.php.net/manual/es/function.trim.php
Espero sea lo que necesitabas o por lo menos te des una idea. Suerte
  #3 (permalink)  
Antiguo 27/03/2007, 16:37
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Como mostrar solo campos con valores?

Cita:
Iniciado por Erikfrancisco Ver Mensaje
Eso lo solucionas con la función empty(), recibiendo las variables de esta forma:
Código PHP:
<?php
$campo1 
trim$_POST["campo1"] );
$campo2 trim$_POST["campo2"] );
$campo3 trim$_POST["campo3"] );
$campo4 trim$_POST["campo4"] );

if( !empty( 
$campo1 ) )
   echo 
"opcion1:".$campo1;
if( !empty( 
$campo2 ) )
   echo 
"opcion2:".$campo2;
if( !empty( 
$campo3 ) )
   echo 
"opcion3:".$campo3;
if( !empty( 
$campo4 ) )
   echo 
"opcion4:".$campo4;
?>
Para más información hacerca de la función empty() checa este enlace:
http://www.php.net/manual/es/function.empty.php
también utilice trim() por si es que al usuario se le ocurrio meter espacios com caracteres:
http://www.php.net/manual/es/function.trim.php
Espero sea lo que necesitabas o por lo menos te des una idea. Suerte
Muchas gracias,es lo que necesitaba
  #4 (permalink)  
Antiguo 27/03/2007, 18:20
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Como mostrar solo campos con valores?

Ahora en mi formulario ocupo un input radio en donde envio el nivel del usuario,pero al seleccionar admin debria aparecer al lado del campo1 o segun la opcion que se elija debe aparecer al lado del campo 1,2,3 o 4.
Mi problema es que si envio solo los datos de la opcion 1 y dejo los otros en blanco,igual me aparece admin en los demas campos.

como lo puedo solucionar?
gracias es mi ultima duda sobre este tema.


formulario html
admin<input type="radio" name="nivel" value="admin">
jefe<input type="radio" name="nivel" value="jefe">
usuario<input type="radio" name="nivel" value="usuario">
opcion1:<input type="text" name="izquierdo"></br>
opcion2:<input type="text" name="derecho"></br>

archivo php
Código PHP:
<?php
$campo1 
trim$_POST["campo1"] );
$campo2 trim$_POST["campo2"] );
$campo3 trim$_POST["campo3"] );
$campo4 trim$_POST["campo4"] );

if( !empty( 
$campo1 ) )
   echo 
"opcion1:".$campo1;echo $nivel.";"."<br>";
if( !empty( 
$campo2 ) )
   echo 
"opcion2:".$campo2;echo $nivel.";"."<br>";
if( !empty( 
$campo3 ) )
   echo 
"opcion3:".$campo3;echo $nivel.";"."<br>";
if( !empty( 
$campo4 ) )
   echo 
"opcion4:".$campo4;echo $nivel.";"."<br>";
?>
  #5 (permalink)  
Antiguo 27/03/2007, 23:51
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Como mostrar solo campos con valores?

Si ingreso algo en la opcion 1 y 2,el nivel de usuario que ha sido seleccionado solo deberia aparecer en :
echo "opcion1:".$campo1;echo $nivel."<br>";
echo "opcion2:".$campo2;echo $nivel."<br>";
,pero me aparece en todas las opciones.es decir me sale

echo "opcion1:".$campo1;echo $nivel."<br>";
echo "opcion2:".$campo2;echo $nivel."<br>";

valor que deberia mostrarse:
opcion1:jefe
opcion2:jefe
jefe
jefe

pero se agrega dos veces mas la palabra jefe,que se debe a que agrego la variable medida a las otras opciones que estan vacias y no deberia mostrarse.

El primer problema que consulte logre solucionarlo,pero ahora se me presenta el de las opciones que estan en el radio,ya que siempre llevaran un valor y empty no me sirve para solucionarlo.

Que puedo hacer?
gracias

formulario html
Código:
Nivel:
<input type="radio" name="nivel" value="usuario">
<input type="radio" name="nivel" value="administrador">
<input type="radio" name="nivel" value="jefe">
</br>
Opcion1<input type="text" name="campo1"></br>
Opcion1<input type="text" name="campo2"></br>
Opcion1<input type="text" name="campo3"></br>
Opcion1<input type="text" name="campo4"></br>
archivo php,esto intente hacer,si el campo esta vacio no deberia mostrar nada en la opcion 1,pero igual muestra lo que se envia en la variable nivel y si no estuviera vacio deberia mostrarse lo que esta en la variable nivel,pero no me resulta.Por eso intento utilizar el else.
Código PHP:
<?php
$nivel
=$_POST["nivel]; 
$campo1 = trim( $_POST["
campo1"] );
$campo2 = trim( $_POST["
campo2"] );
$campo3 = trim( $_POST["
campo3"] );
$campo4 = trim( $_POST["
campo4"] );

if( !empty( $campo1 ) )
   echo "
opcion1:".$campo1;
else
echo $nivel."
<br>";

if( !empty( $campo2 ) )
   echo "
opcion2:".$campo2;echo $nivel."<br>";
if( !empty( $campo3 ) )
   echo "
opcion3:".$campo3;echo $nivel."<br>";
if( !empty( $campo4 ) )
   echo "
opcion4:".$campo4;echo $nivel."<br>";
?>
  #6 (permalink)  
Antiguo 28/03/2007, 10:53
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 2 meses
Puntos: 3
Re: Como mostrar solo campos con valores?

quien me puede ayudar,aun no encuentro como solucionarlo.
  #7 (permalink)  
Antiguo 28/03/2007, 11:58
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: Como mostrar solo campos con valores?

El problema es que le estas diciendo al navegador que imprima los niveles de todos los usuarios aunque hayan sido campos vacios esto lo estas haciendo con la instruccion echo. Para resolver el problema sólo tienes que quitar el echo y concatenar tu variable de esta manera:
ejemplo.php
Código PHP:
<form action="tupagina.php" method="POST">
Escoja el nivel de usuario:</br>
Usuario<input type="radio" name="nivel" value="usuario">
Administrador<input type="radio" name="nivel" value="administrador">
Jefe<input type="radio" name="nivel" value="jefe">
</
br>
Opcion1<input type="text" name="campo1"></br>
Opcion2<input type="text" name="campo2"></br>
Opcion3<input type="text" name="campo3"></br>
Opcion4<input type="text" name="campo4"></br>

<
input type="submit" name="submit" value="Enviar">
</
form
tupagina.php
Código PHP:
<?php 
$nivel 
$_POST["nivel"];
$campo1 trim$_POST["campo1"] ); 
$campo2 trim$_POST["campo2"] ); 
$campo3 trim$_POST["campo3"] ); 
$campo4 trim$_POST["campo4"] ); 

if( !empty( 
$campo1 ) ) 
   echo 
"opcion1: ".$campo1." ".$nivel."<br>"
if( !empty( 
$campo2 ) ) 
   echo 
"opcion2: ".$campo2." ".$nivel."<br>"
if( !empty( 
$campo3 ) ) 
   echo 
"opcion3: ".$campo3." ".$nivel."<br>"
if( !empty( 
$campo4 ) ) 
   echo 
"opcion4: ".$campo4." ".$nivel."<br>"
?>
Y para personalizar el nivel de cada usuario deverias de mostrar sus input radio de manera individual:
ejemplo.php
Código PHP:
<form action="tupagina.php" method="POST">
Opcion1<input type="text" name="campo1">
Usuario<input type="radio" name="nivel1" value="usuario">
Administrador<input type="radio" name="nivel1" value="administrador">
Jefe<input type="radio" name="nivel1" value="jefe"></br>

Opcion2<input type="text" name="campo2">
Usuario<input type="radio" name="nivel2" value="usuario">
Administrador<input type="radio" name="nivel2" value="administrador">
Jefe<input type="radio" name="nivel2" value="jefe"></br>

Opcion3<input type="text" name="campo3">
Usuario<input type="radio" name="nivel3" value="usuario">
Administrador<input type="radio" name="nivel3" value="administrador">
Jefe<input type="radio" name="nivel3" value="jefe"></br>

Opcion4<input type="text" name="campo4">
Usuario<input type="radio" name="nivel4" value="usuario">
Administrador<input type="radio" name="nivel4" value="administrador">
Jefe<input type="radio" name="nivel4" value="jefe"></br>

<
input type="submit" name="submit" value="Enviar">
</
form
tupagina.php
Código PHP:
<?php 
$nivel1 
$_POST["nivel1"];
$nivel2 $_POST["nivel2"];
$nivel3 $_POST["nivel3"];
$nivel4 $_POST["nivel4"];

$campo1 trim$_POST["campo1"] ); 
$campo2 trim$_POST["campo2"] ); 
$campo3 trim$_POST["campo3"] ); 
$campo4 trim$_POST["campo4"] ); 

if( !empty( 
$campo1 ) && !empty( $nivel1 ) ) 
   echo 
"opcion1: ".$campo1." ".$nivel1."<br>"
if( !empty( 
$campo2 ) && !empty( $nivel2 ) ) 
   echo 
"opcion2: ".$campo2." ".$nivel2."<br>"
if( !empty( 
$campo3 ) && !empty( $nivel3 ) ) 
   echo 
"opcion3: ".$campo3." ".$nivel3."<br>"
if( !empty( 
$campo4 ) && !empty( $nivel4 ) ) 
   echo 
"opcion4: ".$campo4." ".$nivel4."<br>"
?>
También debes de validar el campo tipo radio ya que si el usuario no a pulsado sobre algún radio este no tendrá valor alguno. Has de decir, pues eso lo soluciono poniendo un valor por defaul pero eso no es totalmente cierto ya que si algún usuario mal intensionado copia tu form y quita los input radio si no los validaste esto te ocasionará problemas más adelante.
Espero haberme dado a entender y que esto te sirva por lo menos para darte una idea. Suerte
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 19:51.