Foros del Web » Programando para Internet » PHP »

Cosa curiosa con switch

Estas en el tema de Cosa curiosa con switch en el foro de PHP en Foros del Web. Hola. Me está pasando una cosa curiosa con un menú. Tengo el Script: Código PHP: <div> <a href="?id=default" title="Cero">Inicio</a> <a href="?id=01" title="Uno">Sección 1</a> <a href="?id=02" title="Dos">Sección 2</a> <a href="?id=03" title="Tres">Sección 3</a> <a href="?id=04" title="Cuatro">Sección 4</a> <a href="?id=05" title="Cinco">Sección 5</a> <a href="?id=06" title="Seis">Sección 6</a> <a href="?id=07" title="Siete">Sección 7</a> <a href="?id=08" title="Contáctenos">Contáctenos</a> ...
  #1 (permalink)  
Antiguo 29/03/2005, 15:08
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Cosa curiosa con switch

Hola. Me está pasando una cosa curiosa con un menú. Tengo el Script:

Código PHP:
<div>
<a href="?id=default" title="Cero">Inicio</a>
<a href="?id=01" title="Uno">Sección 1</a>
<a href="?id=02" title="Dos">Sección 2</a>
<a href="?id=03" title="Tres">Sección 3</a>
<a href="?id=04" title="Cuatro">Sección 4</a>
<a href="?id=05" title="Cinco">Sección 5</a>
<a href="?id=06" title="Seis">Sección 6</a>
<a href="?id=07" title="Siete">Sección 7</a>
<a href="?id=08" title="Contáctenos">Contáctenos</a>
</div>

<?
$id
=$_GET['id'];
switch (
$id) {
case 
01:
    include(
"01.shtml");
    break;
case 
02:
    include(
"02.shtml");
    break;
case 
03:
    include(
"03.shtml");
    break;
case 
04:
    include(
"04.shtml");
    break;
case 
05:
    include(
"05.shtml");
    break;
case 
06:
    include(
"06.shtml");
    break;
case 
07:
    include(
"07.shtml");
    break;
case 
08:
    include(
"Principal.shtml");
    break;
default:
    include(
"Contacto.shtml");

?>
Supuestamente la página que debería estar en el script como default es Principal, obviamente, pero resulta que la tengo que poner como case 08 y Contactos, que digamos es el ultimo tema como default...

Solo pasa si tengo más de 7 cases, al octavo los tengo que invertir.

¿Alguien me puede explicar que pasa?
  #2 (permalink)  
Antiguo 29/03/2005, 15:16
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 19 años, 4 meses
Puntos: 0
No te entiendo muy bien pero prueba con esto a ver si es lo que quieres

Código PHP:
<div> 
<a href="?id=" title="Cero">Inicio</a> //deja la id vacia
<a href="?id=01" title="Uno">Sección 1</a> 
<a href="?id=02" title="Dos">Sección 2</a> 
<a href="?id=03" title="Tres">Sección 3</a> 
<a href="?id=04" title="Cuatro">Sección 4</a> 
<a href="?id=05" title="Cinco">Sección 5</a> 
<a href="?id=06" title="Seis">Sección 6</a> 
<a href="?id=07" title="Siete">Sección 7</a> 
<a href="?id=08" title="Contáctenos">Contáctenos</a> 
</div> 

<? 
$id
=$_GET['id']; 
switch (
$id) { 

case 
01
    include(
"01.shtml"); 
    break; 

case 
02
    include(
"02.shtml"); 
    break; 

case 
03
    include(
"03.shtml"); 
    break; 

case 
04
    include(
"04.shtml"); 
    break; 

case 
05
    include(
"05.shtml"); 
    break; 

case 
06
    include(
"06.shtml"); 
    break; 

case 
07
    include(
"07.shtml"); 
    break; 

case 
08
    include(
"Contacto.shtml"); //ten cuidado con los nombres de las páginas con mayusculas y minúsculas
    
break; 

default: 
    include(
"Principal.shtml"); //ten cuidado con los nombres de las páginas con mayusculas y minúsculas



?>
Un saludo
  #3 (permalink)  
Antiguo 29/03/2005, 15:17
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
cuando la variable no tiene "$id" valor toma el camino de default.
pero en el formulario que tienes, en el primer href, le estas dando un valor que es "default", es decir que si tiene valor...
para que te funcionara el inicio tendrias que hacer un..

Código PHP:
case "default"bla bla... 
en realidad lo practico para que funcionara es que le quitaras el valor a la variable
Chaop!
  #4 (permalink)  
Antiguo 29/03/2005, 15:20
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 19 años, 4 meses
Puntos: 0
juaz luchope casi a la vez
  #5 (permalink)  
Antiguo 29/03/2005, 16:01
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
je je
Chaop!
  #6 (permalink)  
Antiguo 29/03/2005, 16:08
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Gracias, voy a probar quitándole la id, pero lo curioso es que se invierten los 2 ultimos casos, el default y el case 08, pero sólo cuando tengo más de 8 cases.

Voy a probar case "default" también, pero creo me va a marcar error, según yo default no lleva case.

  #7 (permalink)  
Antiguo 29/03/2005, 16:26
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Sigue estando invertido el case 8 con default.

Lo que si funcionó es cambiar el case 08 a Contacto. Lo que me lleva a 2 preguntas:

¿En
case 01:
el 01 lo toma como cadena de texto o como número?

y ¿son indispensables las comillas? case "xx" porque parece funcionar con y sin.

Gracias.
  #8 (permalink)  
Antiguo 29/03/2005, 16:37
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
normalmante el texto se pone siempre entre comillas dobles, y los numeros sin comillas, aunque con los numeros yo coloco comillas simples y no tengo problema..
Chaop!
  #9 (permalink)  
Antiguo 29/03/2005, 16:49
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Gracias

Ok, voy a poner todos en comillas.

También voy a terminar el default en brake; por si las dudas.

Pero de todos modos dejo apuntado el caso original, resutó curioso que se invirtieran.



Gracias.
  #10 (permalink)  
Antiguo 29/03/2005, 19:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por Rafael
¿En case 01: el 01 lo toma como cadena de texto o como número?
... según yo como cadena... Puedes usar la función gettype() para comprobarlo:
http://mx2.php.net/manual/es/function.gettype.php

Suerte! .. ah! y sí.. usa comillas simples.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 31/03/2005, 09:42
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Comillas simples, Ok.
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 15:23.