Foros del Web » Programando para Internet » PHP »

PHP- No entra al case del Switch

Estas en el tema de PHP- No entra al case del Switch en el foro de PHP en Foros del Web. Hola gente!..me presento..mi nombre es Martin y estoy teniendo un problema, como dice el titulo de este tema, tengo un switch el cual tiene varios ...
  #1 (permalink)  
Antiguo 17/09/2013, 14:51
 
Fecha de Ingreso: septiembre-2013
Ubicación: San Juan, Argentina
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
PHP- No entra al case del Switch

Hola gente!..me presento..mi nombre es Martin y estoy teniendo un problema, como dice el titulo de este tema, tengo un switch el cual tiene varios 'case' funciona todos menos el que dice 'Aceptar'; entra unicamente al segundo click, es decir, hago click y nopasa nada ni siquiera entra al switch, luego hago nuevamente click y entra. No tengo idea de que es lo que puede ser ...estoy anodadado .. ahi les paso el codigo para que le den una mirada y me puedan sugerir algunas soluciones!!..desde ya muchas Gracias!!..

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listas de Productos - Indice</title>
<script type="text/javascript" src ="funciones.js"> </script>
<link rel="stylesheet" type="text/css" href="CSS/style.css" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php
include("conexion.php");
include("Funciones.php");
$band=false;
$habCampoVacio="selected";
$habOpciones="";
$selected="selected";
echo "Boton: ".$_POST[boton]."<br/>";

  switch($_POST['boton'])
      {
	   case 'Ver Lista':   
	                      $sql="SELECT * FROM articulosLista where                          idLista='$_POST[Lista]'";
                          $resulL=mysql_query($sql);
						  $band=true;
						  $habOpciones="selected";
						  $habCampoVacio="";
						  break;
		
		case 'Crear Lista':
		                  if($_POST[CrearLista]!=null) /*Agrego la tabla a listas*/
						    {
						     $sql="Insert INTO listas (nombre) Values ('$_POST[CrearLista]')";
						     $res=mysql_query($sql);
						   
						     /*Selecciono el id de la tabla creada*/
						     $idLista="Select id From listas where nombre='$_POST[CrearLista]'";
						     $result=mysql_query($idLista);
						     $id=mysql_fetch_array($result);
						     //echo "ID lista: ".$id[id];
						     /* Selecciono todos los Articulos*/
						   
						     $sqlA="Select * From articulos where Baja=0";				  
						     $resA=mysql_query($sqlA);
						     while($row=mysql_fetch_array($resA)) /* y los alamaceno en la tabla creada*/ 
						         { 
							    
							     $sqlL="INSERT INTO articulosLista (idLista, idArt, costo) Values                                       ('$id[id]','$row[id]','$row[costo]')";
							     $resu=mysql_query($sqlL);
							     }
							}	 
							 
						   break;
						   
		case 'Eliminar':
							  $sqld="Delete from articulosLista where idLista='$_POST[EliminarLista]'";
							 $res=mysql_query($sqld);
							 // echo $sqld;
		                      $sql="Delete from listas where id='$_POST[EliminarLista]'";
							  $res=mysql_query($sql);
							 // echo $sql;
							  break;
							  
							  
							  				   
	  case '_': 
	  				  $habOpciones="selected";
					  $habCampoVacio="";
	                  $sqlE="DELETE From articulosLista Where id= '$_POST[oculto]'";
					  if($res=mysql_query($sqlE))
					   {
					     
					      $sql="SELECT * FROM articulosLista where idLista='$_POST[Lista]'";
                          $resulL=mysql_query($sql);
						  $band=true;
					   	
					   }
					 
					  break;
					  
	  
			    case 'Aceptar':
	  				 $sqlAceptar="Select * From articulosLista Where idLista='$_POST[Lista]'";
					 //$res=mysql_query($sqlAceptar);
					 echo $sqlAceptar;
					/*while($arre=mysql_fetch_array($res))
						{
	 				    	$m='MargenP'.$arre[id];
	 						$p='PrecioP'.$arre[id];
						    $sql2="UPDATE articulosLista SET margen='$_POST[$m]', precio='$_POST[$p]' Where id='$arre[id]'";
							//$res2=mysql_query($sql2);
						   echo $sql2;
						}*/
							break;
		  
							
		}




?>


<form method="post"  name="formListaProd" onkeypress="anulaenter()">
  <h1>Lista de Productos</h1>
 <input type="hidden" size="5" id="oculto" name="oculto" />
  <table width="701" border="0">
  <tr>
    <td width="113"><select name="Lista" size="1" >
	<option selected="<? echo $habCampoVacio ?>"></option>
	<? 
	
	  $sql="Select id,nombre From listas order by nombre";
	  $res=mysql_query($sql);
	  
	  while($row=mysql_fetch_array($res))
	      { if($row[id]==$_POST['Lista'])
		      {?>
		   <option value="<? echo $row[id] ?>" <? echo $habOpciones ?>><? echo $row[nombre] ?></option>
	         <? }
			 else
			 { ?>
		  <option value="<? echo $row[id] ?>" ><? echo $row[nombre] ?></option>
		  
       <? }
	
	
	     }?>
	
	</select></td>
    <td width="66"><input name="boton" class="btnGuardar1" type="submit" value="Ver Lista"  /></td>
	
    <td width="16">&nbsp;</td>
    <td width="220">
      
        <div align="center">
          <input type="text" id="CrearLista"  name="CrearLista" size="15"/>
          <input type="submit" name="boton" class="btnGuardar1" value="Crear Lista" onclick="return validanombreLista()"/>
      </div></td>
    <td width="264"><div align="right">
      
	  <select name="EliminarLista" id="EliminarLista" size="1" >
        <option selected="<? echo $selected; ?>"></option>
        <? 
	  $sql="Select id,nombre From listas order by nombre";
	  $res=mysql_query($sql);
	  while($rowElimina=mysql_fetch_array($res))
	      {if($rowElimina[id]==$_POST['EliminarLista'])
		    {$selected=""; ?>
        <option value="<? echo $rowElimina[id] ?>" selected><? echo $rowElimina[nombre] ?></option>
        <? }
		else
		  { $selected=""; ?>
		  <option value="<? echo $rowElimina[id] ?>" ><? echo $rowElimina[nombre] ?></option>
	     <? }
		}?>
        </select>
      <input name="button" type="button" class="btnGuardar1" value="Eliminar Lista" onclick="eliminarVentanaLista('<? echo $rowElimina[nombre] ?>')" />
    </div></td>
    </tr>
	<tr>
	<td></td>
	<td></td>
	<td></td>
	<td><div id="name" style="display:none; color:red">&nbsp;Nombre inválido*</div></td>
	<td></td>
	</tr>
</table>
<? if($band==true)
 { ?>
<table width="710px">
    <thead>
            <tr>
                <th  width="107" height="35">Codigo</th>
                <th  width="261">Descripcion</th>
                <th  width="59">Costo</th>
                <th  width="67">Margen</th>
                <th  width="48">Precio</th>
               
                <th  width="140"></th>
                
            </tr>
    </thead>
  </table>
	<div class="TablaListas" >
    
<table class="TablaCompra"> 
        
        <tbody>
         
            
           <? 
            while($rowComp=mysql_fetch_array($resulL))
		   {  
		    $sql1="Select * From articulos Where id=$rowComp[idArt]";
            $resultado=mysql_query($sql1);
			$art=mysql_fetch_array($resultado);
			
           ?>
			
			
			<tr >
                 
                
                <td class="td"><input type="text"  name="CodigoP"   value="<? echo $rowComp['idArt'] ?>" size="5" readonly /></td>
                <td class="td"><input type="text"  name="DescripcionP"  size="50" value="<? echo $art['nombre'] ?>" readonly/></td>
                <td class="td"><input type="text" id="costo<? echo $rowComp[id] ?>" name="CostoP" size="5" value="<? echo round($rowComp['costo'],2) ?>" readonly/></td>
                <td class="td"><input type="text" id="margen<? echo $rowComp[id] ?>" name="MargenP<? echo $rowComp[id] ?>" size="5" value="<? echo number_format($rowComp['margen'],2,',','.') ?>" onChange="calcularprecio(<? echo $rowComp[id] ?>)" /></td>
                <td class="td"><input type="text" id="precio<? echo $rowComp[id] ?>" name="PrecioP<? echo $rowComp[id] ?>" size="5" value="<? echo number_format($rowComp['precio'],2,',','.') ?>" readonly/></td>
                               
				<!--Botones Eliminar -->
				
				<td width="10">
                            <div align="right">
                              <input  name="boton" type="submit" class="imgEliminar" title="Eliminar" value="_" onclick="idoculto('<? echo $rowComp[id] ?>')" />
                            </div></td>
							
            </tr>
        <?  } ?><!--end while-->        
        </tbody>
    </table>
   
  
  
</div>
<? } //end if band ?>



  
<!-- Eliminar VEntana --> 
  
  <div id="miVentana15" style="position: fixed; width: 350px; height: auto; top: 0; left: 0; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 13px; font-weight: normal; border: #333333 3px solid; background-color: #FAFAFA; color: #000000; display:none;">
 <div  style="font-weight: bold; text-align: left; color: #FFFFFF; padding: 5px; background-color:#006394">&iexclATENCION!</div>
  
  <div id="prueba15" style=" text-align: center; margin-top: 44px;"><p style="padding: 5px; text-align: justify; line-height:normal"></p></div>
   <div  style="padding: 10px; background-color: #F0F0F0; text-align: center; margin-top: 54px;">
   
   <input  onclick="ocultarVentana15()" name="boton" class="btnEliminar" size="20" type="submit" value="Eliminar" />
    <input  onclick="ocultarVentana15()"  class="btnVolver" size="20" type="submit" value="Cancelar" />
   
 </div>
  </div>
  <br/>
  <br/>
<table width="182">
<td width="87"><div align="center">
  <input name="Volver" reset="reset" class="btnCancelar" value="Cancelar" type="submit"/>
</div></td>
<td width="95"><div align="center">
  <input type="submit" name="boton" class="btnGuardar" value="Aceptar"/>
</div></td>

</table>

idLista:<input type="text" value="<? echo $_POST[Lista] ?>" />

</form>


</body>
</html>
  #2 (permalink)  
Antiguo 17/09/2013, 17:02
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: PHP- No entra al case del Switch

No se entiende tu código.
  #3 (permalink)  
Antiguo 18/09/2013, 06:46
 
Fecha de Ingreso: septiembre-2013
Ubicación: San Juan, Argentina
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: PHP- No entra al case del Switch

en realidad el codigo es PHP con HTML es una pagina la cual se cargan articulos a una lista y luego de modificarles sus precios se guardan en la base de datos 'articulosLista' al final del codigo hay un boton 'submit' con el nombre(value) 'Aceptar'; y aca es donde deberia entrar al switch en el case 'Aceptar' cdo le hago click , el problema es que cdo hago click en el boton 'Aceptar' no entra al switch..lo que hace es una especie de RESET y no guarda los datos en la base de datos; si vuelvo a hacer click entra al swtich pero como no hay una lista seleccionada ni articulos cargados en esa lista no guarda nada... te paso la web para q veas como funciona y que hace y que no... http://181.14.198.59/peluqueria/Listas.php desde ya muchas gracias x tu tiempo
  #4 (permalink)  
Antiguo 18/09/2013, 07:56
 
Fecha de Ingreso: septiembre-2013
Ubicación: San Juan, Argentina
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: PHP- No entra al case del Switch

me he dado cuenta q si pongo el boton despues del ultimo Select ('EliminarLista') si me toma el boton 'Aceptar'; me parece qestoy teniendo un problema cdo muestro los articulos en una lista q esta entre los <div></div> la cual la muestro siempre y cuando la variable $band=true. No se por que no me toma el boton si los coloco dsps de esta lista...si alguien tiene idea desde ya muchas gracias!!...Saludos
  #5 (permalink)  
Antiguo 18/09/2013, 08:33
Avatar de wizanchez  
Fecha de Ingreso: junio-2013
Ubicación: bogota
Mensajes: 120
Antigüedad: 10 años, 10 meses
Puntos: 6
Respuesta: PHP- No entra al case del Switch

- Tienes varios botones con el msmo name="boton"

- replantea ese codigo,
__________________
---------
cubesoftechnology.com
Wizanchez,,
  #6 (permalink)  
Antiguo 18/09/2013, 08:38
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: PHP- No entra al case del Switch

Primero, para acceder a las claves de un array que no sean numericas se DEBE de usar comillas a no ser de que se le pase una variable o una constante

Código PHP:
Ver original
  1. //MAL
  2. $_POST[boton];
  3.  
  4. //BIEN
  5. $_POST['boton'];
  6.  
  7. $_POST[$boton];
  8.  
  9. const BOTON = 'Prueba';
  10.  
  11. $_POST[BOTON];

Y tu segundo problema es que repites el <input name="boton" /> esto es el porque no te entra en el switch, si repites el name del imput, el valor del ultimo es el que se envia al servidor.


Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 20/09/2013, 12:50
 
Fecha de Ingreso: septiembre-2013
Ubicación: San Juan, Argentina
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: PHP- No entra al case del Switch

Hola Genteee Gracias x responder!!.. lo del name="boton" es x q depende de que boton aprete es al case q va a ejecutar...todos me funcionan menos el de 'Aceptar'. Ahora, el problema lo solucione eliminando una columna que muestro en en la Tabla 'TablaCompra', en este caso elimine el Codigo del Articulo x q en realidad no es necesario mostrarlo para este caso. Funciona de maravillas si elimino una de las columnas de tal tabla; no se a que se debe..pero es claro que el problema esta cdo muestro la tabla y no en el switch.. Desde ya muchas gracias x sus aportes!!...
PD: Si alguien descubre x que falla al mostrar la tabla con 5 columnas les agradeceria muchoo!.. Funciona Correctamente al mostrar 4 columnas!..Mis saludos!
  #8 (permalink)  
Antiguo 20/09/2013, 12:51
 
Fecha de Ingreso: septiembre-2013
Ubicación: San Juan, Argentina
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: PHP- No entra al case del Switch

Gracias!!..lo tendre en cuenta!

Etiquetas: html, switch
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 22:27.