Foros del Web » Programando para Internet » PHP »

Novaton pregunta: Hay un limite de elseif ?

Estas en el tema de Novaton pregunta: Hay un limite de elseif ? en el foro de PHP en Foros del Web. Hola! Novaton sigue su curva de aprendizaje... jeje... Tengo un caso en que estoy utilizando multiples elseif, pero solo los primeros dos funcionan bien, del ...
  #1 (permalink)  
Antiguo 12/11/2010, 08:55
 
Fecha de Ingreso: octubre-2010
Mensajes: 122
Antigüedad: 14 años, 2 meses
Puntos: 6
Novaton pregunta: Hay un limite de elseif ?

Hola! Novaton sigue su curva de aprendizaje... jeje... Tengo un caso en que estoy utilizando multiples elseif, pero solo los primeros dos funcionan bien, del tercero al sexto no funcionan y me devuelven el "else", a menos que haya algo que yo este omitiendo aqui:

Código PHP:
              if ($zona == && $servicio == 1) {
        echo 
'zona 1 y servicio 1';
            }
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 1 y servicio 2';
        }
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 2 y servicio 1';
        }
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 2 y servicio 2';
        }
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 3 y servicio 1';
        }
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 3 y servicio 2';
        }
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 4 y servicio 1';
        }
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 4 y servicio 2';
        }
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 5 y servicio 1';
        }
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 5 y servicio 2';
        }
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 6 y servicio 1';
        }
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 6 y servicio 2';
        }        
    else {
        echo 
'Hay algo mal aqui';
        } 
En mis pruebas yo tengo:

Código:
echo $zona;
echo '<br>';
echo $servicio;
echo '<br>';
cuando la zona es 3 y el servicio es 1, debiera aparecer: "zona 3 y servicio 1", sin embargo, aparece "Hay algo mal aqui".

Hay algo mal en mi sentencia if, elseif, else?

Gracias!
  #2 (permalink)  
Antiguo 12/11/2010, 08:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Novaton pregunta: Hay un limite de elseif ?

acabo de probar tu código y me funciona perfectamente!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/11/2010, 08:59
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Novaton pregunta: Hay un limite de elseif ?

mm creeria que no...

Puedes poner todo el codigo asi lo analizamos mejor?

Yo crearia una funcion...
  #4 (permalink)  
Antiguo 12/11/2010, 09:09
 
Fecha de Ingreso: octubre-2010
Mensajes: 122
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Novaton pregunta: Hay un limite de elseif ?

Gracias!

@pateketrueke: Cuando seleccionas, ejemplo: "America del Sur y America Central" y "Exporta Facil Certificado" te devuelve: "zona 3 y servicio 1" o "Hay algo mal aqui" ?

@Chuecko: Desde el principio tengo claro que debo crear una funcion, pero mis primeros pasos en esto no tengo muy claro como manejarlo, estoy limitado por mi poco conocimiento, agradezco cualquier ayuda en ese sentido, si puedes apuntarme a algun buen tuto sobre crear funciones estare eternamente agradecido!

Aqui esta todo el codigo:

Código PHP:

<html>
<link href="../templates/default/css/joomla.css" rel="stylesheet" type="text/css">

<div class="img_caption">Ingrese el peso en libras de su paquete</div>
</html>

<html>
<form action="hello.php" method="post" enctype="multipart/form-data" name="prueba">
</html>
<input name="pesolibras" type="text" size="20" maxlength="30">
<br>
<select name="zona" onChange="hello.php">
  <option value="0">Seleccione la region</option>
  <option value="1">USA, Canada y Puerto Rico</option>
  <option value="2">El Caribe</option>
  <option value="3">America del Sur y America Central</option>
  <option value="4">Europa</option>
  <option value="5">Asia</option>
  <option value="6">Resto del mundo</option>
</select>
<br>
<select name="servicio" onChange="hello.php">
  <option value="0">Seleccione el servicio</option>
  <option value="1">Exporta Fácil Certificado</option>
  <option value="2">Exporta Fácil Expreso</option>
</select>
<html>
<br>
<input name="ver" type="submit" class="button" onClick="hello.php" value="Calcular Tarifa">

</html>

</form>
<div class="inputbox">



</div>
<?php
//kilogramo a libra 1.0 = 2.205

$zona $_POST['zona']; 
$servicio $_POST['servicio'];
$pesolibras $_POST['pesolibras'];
$kilos $pesolibras/2.2046;
echo 
$pesolibras;
echo 
' libras son ';
echo 
$kilos;
echo 
' kilos.';
echo 
'<br>';
echo 
$zona;
echo 
'<br>';
echo 
$servicio;
echo 
'<br>';


        if (
$zona == && $servicio == 1) {
        echo 
'zona 1 y servicio 1';
        
    }
    
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 1 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 2 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 2 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 3 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 3 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 4 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 4 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 5 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 5 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 6 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 6 y servicio 2';
        }
        
    else {
        echo 
'Hay algo mal aqui';
        }
?>
P.D.: Solo quiero hacer constancia de que en el codigo hay varios "echo" solo para yo ir viendo que me esta devolviendo los valores que yo espero, a modo de monitor, no que necesariamente vayan en mi pagina.


Gracias gracias!
  #5 (permalink)  
Antiguo 12/11/2010, 09:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Novaton pregunta: Hay un limite de elseif ?

yo hice esto el primer linea:
Código PHP:
$zona 3;
$servicio 1;

// ... 
y me imprime "zona 3 y servicio 1", quizá tu problema se solucione haciendo type casting:
Código PHP:
$zona = (int) $_POST['zona']; 
$servicio = (int) $_POST['servicio']; 
en todo caso si te sigue ocurriendo el mismo problema prueba esto:
Código PHP:
echo 'Hay algo mal aqui';
var_dump($zona$servicio); 
si algo va mal nos muestras que resulta...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 12/11/2010, 09:17
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 10 meses
Puntos: 55
Respuesta: Novaton pregunta: Hay un limite de elseif ?

si funciona pero tienes malos los eventos onclick y onchange

Código PHP:

<html>
<link href="../templates/default/css/joomla.css" rel="stylesheet" type="text/css">

<div class="img_caption">Ingrese el peso en libras de su paquete</div>
</html>

<html>
<form action="zona.php" method="post" enctype="multipart/form-data" name="prueba">
</html>
<input name="pesolibras" type="text" size="20" maxlength="30">
<br>
<select name="zona">
  <option value="0">Seleccione la region</option>
  <option value="1">USA, Canada y Puerto Rico</option>
  <option value="2">El Caribe</option>
  <option value="3">America del Sur y America Central</option>
  <option value="4">Europa</option>
  <option value="5">Asia</option>
  <option value="6">Resto del mundo</option>
</select>
<br>
<select name="servicio">
  <option value="0">Seleccione el servicio</option>
  <option value="1">Exporta Fácil Certificado</option>
  <option value="2">Exporta Fácil Expreso</option>
</select>
<html>
<br>
<input name="ver" type="submit" class="button" value="Calcular Tarifa">

</html>

</form>
<div class="inputbox">



</div>
<?php
//kilogramo a libra 1.0 = 2.205
if(isset($_POST['zona'])){
$zona $_POST['zona']; 
$servicio $_POST['servicio'];
$pesolibras $_POST['pesolibras'];
$kilos $pesolibras/2.2046;
echo 
$pesolibras;
echo 
' libras son ';
echo 
$kilos;
echo 
' kilos.';
echo 
'<br>';
echo 
$zona;
echo 
'<br>';
echo 
$servicio;
echo 
'<br>';


        if (
$zona == && $servicio == 1) {
        echo 
'zona 1 y servicio 1';
        
    }
    
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 1 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 2 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 2 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 3 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 3 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 4 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 4 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 5 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 5 y servicio 2';
        }
        
    elseif (
$zona == && $servicio == 1) {
        echo 
'zona 6 y servicio 1';
        }
        
    elseif (
$zona == && $servicio == 2) {
        echo 
'zona 6 y servicio 2';
        }
        
    else {
        echo 
'Hay algo mal aqui';
        }
}
?>
  #7 (permalink)  
Antiguo 12/11/2010, 09:29
 
Fecha de Ingreso: octubre-2010
Mensajes: 122
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: Novaton pregunta: Hay un limite de elseif ?

Gracias muchachos, mil gracias... pero me apena decirles que la razon por la que no me estaba funcionando era por una estupidez mia!

Aparentemente el codigo que pase aqui estaba funcionando... pero la pagina que yo "refrescaba" era una "version" previamente guardada... lo siento mucho, pero si me sirvio de mucho, especialmente lo de explorar el asunto de la funcion.

Estas tarifas vienen de una tabla de una relacion peso (en kilogramos) y zona de destino, hay 6 zonas de destino y hacer esta relacion manualmente se contrapone precisamente con el concepto de programacion, lo malo es que no estoy claro como crear una funcion para estos fines.

Orientenme un poco en esto de las funciones, por favor. (link, tuto, manual, etc.)

Gracias nuevamente y mil perdon!

Etiquetas: elseif, limite
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 01:45.