Foros del Web » Programando para Internet » PHP »

Problema con tres variable mediante $_POST

Estas en el tema de Problema con tres variable mediante $_POST en el foro de PHP en Foros del Web. Hola. Alguien me puede echar una mano con este código. Este pequeño código como podéis observar es una condicional, que lo mismo condiciones booleanas. Hay ...
  #1 (permalink)  
Antiguo 28/08/2014, 13:22
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Problema con tres variable mediante $_POST

Hola.

Alguien me puede echar una mano con este código.

Este pequeño código como podéis observar es una condicional, que lo mismo condiciones booleanas. Hay en está sintaxis, tres matrices que tiene incrustada cada una de ellas, una variable distinta como, sexo, estado, edad.

En cuanto a este código no produce error, ahora más abajo os explico el problema que tengo.

Código PHP:
<?php
if ($_POST["sexo"] == "masculino"){

    print (
"¡Hola Hombre!");
    
} elseif (
$_POST["estado"] == "soltera"){

    print (
"¡Hola Mujer soltera!");

} elseif (
$_POST["edad"] > 70){

    print (
"¡Hola abuela!");
    
}
?>
Este es otro óodigo en HTML

Código HTML:
<form action="elseif_distintas_condiciones.php" method="post">
<select name="sexo" name="estado" name="edad">
  <option value="masculino">masculino</option>
  <option value="soltera">soltera</option>
  <option value="71">anciana</option>
</select>
    <input type="submit" value="Enviar" />
</form> 
Lo que quiero hacer es una lista menú con los valores, masculino, soltera y 71, pero tengo el problema de <select name="sexo" name="estado" name="edad"> Esto no me funciona bien, no puede tener tres variables distintas.

Con una variable, me funciona la primera condición pero las otras condiciones no funciona y además produce un error.

<select name="sexo" name="estado" name="edad">

¿Como se hace una lista de menú para que pueda contener en el mismo tres variables distintas?

Saludos.
  #2 (permalink)  
Antiguo 28/08/2014, 13:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con tres variable mediante $_POST

No, eso es imposible, además corresponde únicamente a HTML la especificación del mismo.

Un campo no puede tener atributos duplicados, nada que ver con PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/08/2014, 14:12
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con tres variable mediante $_POST

Cita:
Iniciado por pateketrueke Ver Mensaje
No, eso es imposible, además corresponde únicamente a HTML la especificación del mismo.

Un campo no puede tener atributos duplicados, nada que ver con PHP.
¿No habrá alguna forma de incrusta esas tres variables a una lista de menú?
  #4 (permalink)  
Antiguo 28/08/2014, 14:16
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Problema con tres variable mediante $_POST

Teniendo en cuenta que es un solo select ¿porque en los else if no usas el mismo nombre?
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #5 (permalink)  
Antiguo 28/08/2014, 14:22
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con tres variable mediante $_POST

Cita:
Iniciado por bookmaster Ver Mensaje
Teniendo en cuenta que es un solo select ¿porque en los else if no usas el mismo nombre?
Porque estoy leyéndome un libro de PHP, es un ejemplo que también se puede realizar condicionales con distintas variables. Pero el fallo del libro solo viene el ejemplo, pero no como ejecutarlo a través de un formulario.

Solo te explica lo que te contado antes, pero no ejecuta nada porque falta esa parte, por eso lo pregunto.

Ayúdame por favor.
  #6 (permalink)  
Antiguo 28/08/2014, 14:28
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Problema con tres variable mediante $_POST

Es raro que no te pongan un formulario de ejemplo, pero vamos que en principio esta pensado para formularios de varios campos y que quieras "filtrar" según los campos que rellenes.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #7 (permalink)  
Antiguo 28/08/2014, 14:38
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con tres variable mediante $_POST

Cita:
Iniciado por bookmaster Ver Mensaje
Es raro que no te pongan un formulario de ejemplo, pero vamos que en principio esta pensado para formularios de varios campos y que quieras "filtrar" según los campos que rellenes.
Claro que es raro, al principio del libro son ejemplos tan sencillos, que no necesitaban ningún formulario.

En el capítulo que estoy leyendo, había un ejemplo con condicionales, con una misma variable y si funcionaba, con el método POST. El libro te explicaba como hacerlo a través de un formulario, pero en este ejemplo con distintas variables no explicada nada. Como que lo has entendido perfectamente, pero es un error porque es totalmente diferente.

¿No conoces alguna solución al respecto para hacerlo en un menú de selección como te comentado anteriormente?
  #8 (permalink)  
Antiguo 28/08/2014, 14:44
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Problema con tres variable mediante $_POST

Pues en el código que as puesto sería:
Código HTML:
Ver original
  1. <form action="elseif_distintas_condiciones.php" method="post">
  2. <select name="Opciones">
  3.   <option value="masculino">masculino</option>
  4.   <option value="soltera">soltera</option>
  5.   <option value="71">anciana</option>
  6.     <input type="submit" value="Enviar" />
  7. </form>

Código PHP:
Ver original
  1. <?php
  2. if ($_POST["Opciones"] == "masculino"){
  3.     print ("¡Hola Hombre!");
  4. } elseif ($_POST["Opciones"] == "soltera"){
  5.     print ("¡Hola Mujer soltera!");
  6. } elseif (is_numeric($_POST["Opciones"]) &&  $_POST["Opciones"] > 70){
  7.     print ("¡Hola abuela!");
  8. }
  9. ?>
Nota: Ojo con la comparación numérica ya que tendrías que mirar primero si es un número ya que de ser un string te dará error por eso te e puesto el is_numeric, para que si lo es pase a comprobar si es mayor de 70, en el caso de que no lo sea o el numero sea interior a 70 se saltará esa opción.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #9 (permalink)  
Antiguo 28/08/2014, 14:54
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con tres variable mediante $_POST

Cita:
Iniciado por bookmaster Ver Mensaje
Pues en el código que as puesto sería:
Código HTML:
Ver original
  1. <form action="elseif_distintas_condiciones.php" method="post">
  2. <select name="Opciones">
  3.   <option value="masculino">masculino</option>
  4.   <option value="soltera">soltera</option>
  5.   <option value="71">anciana</option>
  6.     <input type="submit" value="Enviar" />
  7. </form>

Código PHP:
Ver original
  1. <?php
  2. if ($_POST["Opciones"] == "masculino"){
  3.     print ("¡Hola Hombre!");
  4. } elseif ($_POST["Opciones"] == "soltera"){
  5.     print ("¡Hola Mujer soltera!");
  6. } elseif (is_numeric($_POST["Opciones"]) &&  $_POST["Opciones"] > 70){
  7.     print ("¡Hola abuela!");
  8. }
  9. ?>
Nota: Ojo con la comparación numérica ya que tendrías que mirar primero si es un número ya que de ser un string te dará error por eso te e puesto el is_numeric, para que si lo es pase a comprobar si es mayor de 70, en el caso de que no lo sea o el numero sea interior a 70 se saltará esa opción.
Muchas gracias por ayudarme pero parece que no me explicado bien.

Mira este ejemplo, este funciona bien.

Código HTML:
<form action="elseif_misma_variable_metodo_get.php" method="get">
	<select name="dia">
    	<option value="lunes">Lunes</option>
        <option value="martes">Martes</option>
        <option value="miércoles">Miercoles</option>
        <option value="jueves">Jueves</option>
        <option value="viernes">Viernes</option>
        <option value="sábado">Sábado</option>
        <option value="domingo">Domingo</option>
	</select>
    <input type="submit" value="Enviar" />
</form> 
Código PHP:
<?php

if ($_POST["dia"] == "lunes") {
    
    print (
"¡Feliz día de la Luna!");
    
} elseif (
$_POST["dia"] == "martes") {
    
    print (
"¡Feliz día de Marte!");
    
} elseif (
$_POST["dia"] == "miércoles") {
    
    print (
"¡Feliz dia de Mercurio!");
    
} elseif (
$_POST["dia"] == "jueves") {
    
    print (
"¡Feliz dia de Júpiter!");
    
} elseif (
$_POST["dia"] == "viernes") {
    
    print (
"¡Feliz día de Venus!");
    
} elseif (
$_POST["dia"] == "sábado") {
    
    print (
"¡Feliz día de Saturno!");
    
} elseif (
$_POST["dia"] == "domingo") {
    
    print (
"¡Felia día del Sol!");
    
}

?>
Vale, pero luego el libro te explica que las condicionales se puede colocar distintas variables con distinto valor. Y te pone este ejemplo:

Código PHP:
<?php
if ($_POST["sexo"] == "masculino"){

    print (
"¡Hola Hombre!");
    
} elseif (
$_POST["estado"] == "soltera"){

    print (
"¡Hola Mujer soltera!");

} elseif (
$_POST["edad"] > 70){

    print (
"¡Hola abuela!");
    
}
?>
Pero yo estoy intentando realizar la misma operación con formulario, como en el otro ejemplo que te explicado. Eso es lo que el libro no explica, como realizar un formulario con un select menu con distintas variables.

Muchas gracias por ayudar haber si me explicado mejor.
  #10 (permalink)  
Antiguo 28/08/2014, 15:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con tres variable mediante $_POST

Cita:
Iniciado por TIFORO Ver Mensaje
Pero yo estoy intentando realizar la misma operación con formulario, como en el otro ejemplo que te explicado. Eso es lo que el libro no explica, como realizar un formulario con un select menu con distintas variables.
Y ese es precisamente el problema (que nada tiene que ver con PHP).

Te explico:

Un campo de un formulario sólo puede representar un valor a la vez, ningún campo puede representar varios valores al mismo tiempo.

Así de simple, no puedes usar un sólo elemento con la intención de representar varios valores a la vez, usa tu sentido común.

Varios campos sí pueden representar varios valores.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 28/08/2014, 15:19
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con tres variable mediante $_POST

Cita:
Iniciado por pateketrueke Ver Mensaje
Y ese es precisamente el problema (que nada tiene que ver con PHP).

Te explico:

Un campo de un formulario sólo puede representar un valor a la vez, ningún campo puede representar varios valores al mismo tiempo.

Así de simple, no puedes usar un sólo elemento con la intención de representar varios valores a la vez, usa tu sentido común.

Varios campos sí pueden representar varios valores.
Gracias de nuevo.

Pues quizás sea una explicación para que en una condicional, se puede incrustar varias variables distintas, pero no entiendo con que fin.

Porque esto realmente no funciona así, es más provoca un error.

Código PHP:
<?php
if ($_POST["sexo"] == "masculino"){

    print (
"¡Hola Hombre!");
    
} elseif (
$_POST["estado"] == "soltera"){

    print (
"¡Hola Mujer soltera!");

} elseif (
$_POST["edad"] > 70){

    print (
"¡Hola abuela!");
    
}
?>
Lo mismo que le pasa con otro ejemplo:

Código PHP:

$dia 
"sábado"// Si yo no coloco está variable, no funciona, explica que si $dia es == lunes, pues que se ejecuta esa condición y así sucesivamente, pero yo para aprender y querría introducir ese valor, a través de algún campo o algo para cambiar la variable y que se ejecute con distintos valores. 

if ($dia == "lunes") {
    
    print (
"¡Feliz día de la Luna!");
    
} elseif (
$dia == "martes") {
    
    print (
"¡Feliz día de Marte!");
    
} elseif (
$dia == "miércoles") {
    
    print (
"¡Feliz dia de Mercurio!");
    
} elseif (
$dia == "jueves") {
    
    print (
"¡Feliz dia de Júpiter!");
    
} elseif (
$dia == "viernes") {
    
    print (
"¡Feliz día de Venus!");
    
} elseif (
$dia == "sábado") {
    
    print (
"¡Feliz día de Saturno!");
    
} elseif (
$dia == "domingo") {
    
    print (
"¡Felia día del Sol!");
    

  #12 (permalink)  
Antiguo 28/08/2014, 15:55
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Problema con tres variable mediante $_POST

Por curiosidad podrías poner el título del libro que estés mirando, es para agregarlo a la lista de libros que hay que evitar.
De todas maneras como ya lo comenté hace unos días o otro usuario, el mejor libro que puedes leer de php y que además esta actualizado es la propia página oficial de PHP.

Para obtener el campo de un form y meterlo en la variable sería:
Código PHP:
Ver original
  1. $dia = $_POST['NombreCampo'];
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #13 (permalink)  
Antiguo 28/08/2014, 16:14
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con tres variable mediante $_POST

El libro se llama "El gran libro de PHP Creación de páginas dinámicas"
El autor es Nernán Beati.

Querría decir en mi humilde opinión, esta explicado bastante claro, me leído el 35% del libro y me ha encantado, pero me estoy dando cuenta que los ejemplos que ofrece, están bien, para explicar los conceptos de las sentencias del código PHP, pero no ofrece una explicación lógica, para que sirve ese ejemplo, ni con que fin lo voy a utilizar para mezclarlo con otras sentencias. Lo malo que tiene el libro son los ejemplos, que no están muy claros y en la mayoría produce error porque no están completos.

Mira esto es un ejemplo de libro, si te explica la condicional, pero falta la parte como se hace esta sintaxis para cambiar el valor por ejemplo en un formulario.

if ($dia == "lunes") {

print ("¡Feliz día de la Luna!");

} elseif ($dia == "martes") {

print ("¡Feliz día de Marte!");

} elseif ($dia == "miércoles") {

print ("¡Feliz dia de Mercurio!");

} elseif ($dia == "jueves") {

print ("¡Feliz dia de Júpiter!");

} elseif ($dia == "viernes") {

print ("¡Feliz día de Venus!");

} elseif ($dia == "sábado") {

print ("¡Feliz día de Saturno!");

} elseif ($dia == "domingo") {

print ("¡Felia día del Sol!");

}



?>

No si se me has entendido bookmaster.


¿Conoce algún libro bueno que este bien explicado y, que ademas de ejemplos tenga ejercicios con practicas?

Última edición por TIFORO; 28/08/2014 a las 16:23
  #14 (permalink)  
Antiguo 28/08/2014, 16:27
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Problema con tres variable mediante $_POST

En esta página tienes varios: OpenLibra. Y este "Programador PHP. Tomo 1" mas o menos esta bien, aunque no esta completo aun.
Te pondría los que tengo yo pero aparte de que están desfasados, suelo mirar la página oficial cuando tengo que consultar algo.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #15 (permalink)  
Antiguo 28/08/2014, 16:47
 
Fecha de Ingreso: junio-2008
Ubicación: Madrid
Mensajes: 374
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con tres variable mediante $_POST

Gracias compañero

Etiquetas: html, mediante, post, select, tres, variable
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:48.