Foros del Web » Programando para Internet » PHP »

Convertir variable en operador

Estas en el tema de Convertir variable en operador en el foro de PHP en Foros del Web. Tengo problema que deseo solucionar espero que me den una mano Bien tengo en un formulario dos campos text y un combo de estea forma ...
  #1 (permalink)  
Antiguo 11/09/2009, 10:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 7
Mensaje Convertir variable en operador

Tengo problema que deseo solucionar espero que me den una mano
Bien tengo en un formulario dos campos text y un combo de estea forma

Salarios (text) aquí coloca un valor numérico
Viaticos(text) aquí coloca un valor numérico
Autorizacion(combo) aquí se selecciona dos opciones 1(Aprobado) y otro que es (Desaprobado)
El valor del cada uno es Aprobado + y Desaprobado –

Cuando mando los datos a otra página me debería si selecciono aprobado me envía
Salarios (550.65)
Viáticos (200.30)
Autorización (+ )
Bien entonces aquo puedo hacer una suma

Pero en datos que tiene autorizado es un signo + pero no se suma y viceversa no se resta, me da este error.

Parse error: syntax error, unexpected '{' in C:\AppServ\www\operadores\operadores\procesaOperac ion.php on line 27

Parse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\operadores\procesaOperacion.php on line 27

Gracias pos su ayuda
  #2 (permalink)  
Antiguo 11/09/2009, 11:00
Avatar de pipev25  
Fecha de Ingreso: septiembre-2009
Mensajes: 93
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Convertir variable en operador

segun el error o te falta o tenes de mas una { en la linea 26 del archivo procesaOperacion.php revisalo y depronto alli esta
  #3 (permalink)  
Antiguo 11/09/2009, 11:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Convertir variable en operador

lo he puesto de estas dos formas pero siempre me da error

$n1 = $_POST["opera1"];
$n2 = $_POST["opera2"];
$operador = $_POST["operadores"];

$resultado = $n1 $operador $n2;

Parse error: syntax error, unexpected '{' in C:\AppServ\www\operadores\operadores\procesaOperac ion.php on line 27



$n1 = $_POST["opera1"];
$n2 = $_POST["opera2"];
$operador = $_POST["operadores"];

$resultado = $n1 {$operador} $n2;

Parse error: syntax error, unexpected T_VARIABLE in C:\AppServ\www\operadores\procesaOperacion.php on line 27

Última edición por dubiweb; 11/09/2009 a las 11:14 Razón: anexar datos de errores
  #4 (permalink)  
Antiguo 11/09/2009, 11:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Convertir variable en operador

la sintaxis que empleas no es posible, por eso el error...

a lo sumo, puedes usar eval() para "interpretar" la expresión, no mas....
Código PHP:
$a 2;
$b 3;
$c '+';

eval(
"\$d = \$a $c \$b;");
echo 
$d
lee el manual
http://php.net/eval
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/09/2009, 12:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Convertir variable en operador

muchas gracias amigos problema solucionado
  #6 (permalink)  
Antiguo 11/09/2009, 12:43
 
Fecha de Ingreso: septiembre-2009
Mensajes: 12
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Convertir variable en operador

tengo una idea, porque en autorizacion no le mandas dos valores: 1 y 2 y haces un switch


$n1 = $_POST["salarios"];
$n2 = $_POST["viaticos"];

switch($_POST["autorizacion"]){
case "1":
$resultado= $n1 + $n2;
break;
case "2":
$resultado= $n1 - $n2;
break;
}

depende a lo que mandes en autorizacion, hara la operacion que quieras, espero y te sirva.
  #7 (permalink)  
Antiguo 11/09/2009, 13:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 122
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Convertir variable en operador

Gracias amigo jamm1982 pero lo que quería era simplificar código ya que si puedo hacer que el operador se envió y no ponerlo seria mas escalable la aplicación. Y me quedo asi:

$n1 = $_POST["opera1"];
$n2 = $_POST["opera2"];
$operador = $_POST["operadores"];

eval("\$resultado = \$n1 $operador \$n2;")
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:31.