Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/02/2008, 07:13
safranero
 
Fecha de Ingreso: enero-2007
Mensajes: 157
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Errores con POST

Supongo que diras que siempre está entrando en el POST, y tu solo quieres que entre cuando le des al submit. Pues eso lo solucionas muy fácilmente con un if y la funcion de php empty.

funcion empty => http://www.php.net/empty

El código se quedaría así:

Código PHP:
<?php 

//Si la variable $_POST esta vacia entrará, si no, hara las opearaciones que tu le digas en el else.
if(empty($_POST))
{
?>
    <form method="post" name="formulario">
    <select name="valores">
      <option value="0" selected>Seleccione... </option>
      <option value="<? echo $valor1?>">Valor 1</option>
      <option value="<? echo $valor2?>">Valor 2</option>
      <option value="<? echo $valor3?>">Valor 3</option>
      <option value="<? echo $valor4?>">Valor 4</option>
    </select>
    <input name="texto" type="text" size="50" maxlength="10" 
    value="<?php echo $resultado?>" />
    <input type="submit" onclick="this.form.action='pruebas.php'" value="Validar" class="texto-cuerpo88" />
    </form>
<?
} else {
    
$valor1=1;
    
$valor2=2;
    
$valor3=3;
    
$valor4=4;
    if (
$_POST['valores'] == 1){
        
$resultado '2%';
    }elseif (
$_POST['valores'] == 2){
        
$resultado '3%';
    }elseif (
$_POST['valores'] == 3){
        
$resultado '50%';
    }elseif (
$_POST['valores'] == 4){
        
$resultado '1%';
    }else{
        
$resutado="esperando resultado";
    }
}
?>
tambien te recomiendo que cambies el los if y elseif por un switch, quedaría asi:

Código PHP:
    switch($_POST["valores"])
    {
        case 
1
            
$resultado='2%';
            break;
        
        case 
2
            
$resultado '3%';
            break;
        
        case 
3
            
$resultado '50%';
            break;
        
        case 
4
            
$resultado '1%';
            break;
        
        default:
            
$resutado="esperando resultado";
            break;
    } 
Espero que te lo solucione y recuerda que saber programar no es saberse todas las funciones de php, si no poder solucionar problemas sin saber programar ^^.