Foros del Web » Programando para Internet » PHP »

Calcular e insertar en una misma Pagina????

Estas en el tema de Calcular e insertar en una misma Pagina???? en el foro de PHP en Foros del Web. Buenas Noches! Mi consulta es la siguiente, necesito realizar en la misma pagina un calculo con los datos obtenidos a traves de un formulario que ...
  #1 (permalink)  
Antiguo 23/09/2003, 22:57
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Calcular e insertar en una misma Pagina????

Buenas Noches!

Mi consulta es la siguiente, necesito realizar en la misma pagina un calculo con los datos obtenidos a traves de un formulario que esta en la misma, esto lo puedo hacer sin ningun problema llamandola asi misma, pero mi problema se presenta cuando quiero agregar otro boton, que es el de guardar en la base de datos. ¿se puede hacer? ¿como lo puedo hacer? o necesariamente debo enviar la informacion a otra pagina para que puedan ser guardados en la tabla correspondiente?

Desde ya les agradezco su colaboracion

Saludos
Reckba
  #2 (permalink)  
Antiguo 23/09/2003, 23:38
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 21 años, 2 meses
Puntos: 2
Hola, puedes intentar usando un flag que a la primera carga sea 0 y que al pasarla le cambies el valor , así puedes con un if simple colocar más código, como por ejemplo un botón
Suerte!
Jose A.
__________________
Jose A
  #3 (permalink)  
Antiguo 23/09/2003, 23:53
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Funcionaria para la primera carga, por ejemplo si hago clic al boton calcular funcionaria, pero si luego quiero hacer clic al boton guardar que pasaria? como lo controlo?

Saludos
Reckba
  #4 (permalink)  
Antiguo 24/09/2003, 00:02
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 21 años, 2 meses
Puntos: 2
if (isset($flag))
{
//tu codigo que tienes para grabar
}
es decir, en la primera vez la variable no esta seteada (perdona el flag), cuando ingresas por segunda vez le pasas un valor e ingresa al if allí puedes poner el código para grabar que tienes
espero te sirva
Jose A.
__________________
Jose A
  #5 (permalink)  
Antiguo 24/09/2003, 21:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Te recomiendo que tus botones que uses (y que redirecionas a la misma página) uses una variable de control (o flag) .. pero .. que defina "estados" (y no sólo dos .. sino varios como parece que es el caso) ..

Para "discriminar" entre esos estados de ese "flag" (variable de control) te viene muy bien usar el switch()

Código PHP:
switch($_GET['accion']){

case 
"proceso":
   
// y haces el cáculo o proceso ..
break;

case 
"guardar":
   
// y haces el proceso para insertar tu datos en tu BD..
break;

default:
    
// el formulario donde pidas tus datos .. y muestras tus botones de accion.

Y el formulario .. tus botones tienen que generar un valor de varible $accion = al de los diferentes "case" .. Esto lo puedes gestionar desde javascript por ejemplo .. cambiando el valor de un campo hidden (de name="accion") al evento onClick (del boton . no boton submit) ... (para detalles sobre esto de javascript .. mejor usa el foro Javascript ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 24/09/2003, 22:58
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
osea, defino estos botones en el formulario, como por ejemplo asi:

<form name="form1" method="GET" action="igualpagina.php">

.
.
.
<input type="submit" name="Calcular" value="calcular">
<input type="submit" name="Guardar" value="guardar">
</form>

if ($_GET['calcular'])
{
//proceso calcular
}else {
//proceso guardar
}

o estoy mal? o mas bien como debo definir la variable bandera (flag)??
  #7 (permalink)  
Antiguo 24/09/2003, 23:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si lo haces como los estás planteando ..debes usar isset() para ver si está o no definida dicha variable ..

Ademas, en tu ejemplo de los botones .. el "name" es para PHP la varible .. y PHP puede ser "case sensitive" (sensible a mayusculas) ..

Y ..mejor usar if .. else if ..

Código PHP:
if (isset($_GET['Calcular'])){
    
//proceso calcular
} elseif (isset($_GET['Guardar'])) {
   
//proceso guardar
} else {
   
// aquí el formulario donde pidas esos datos ..

La opción que te planteo .. usando el switch() es muchooo más claro y ordenado el código (pese que tengas sólo dos opciones + 1 extra "por defecto" .. que sería el caso de llamadas a esa página sin indicar esas variables ..)

En el ejemplo que te puse .. la parte de javascript que te hacia referencia es:

Código PHP:
<form name="formulario" action="igualpagina.php" method="GET">

<!-- 
La variable oculta que le damos "value" vía javascript -->
<
input type="hidden" name="accion">


<
input type="button" name="Calcular" onClick="document.formulario.accion.value='calcular';this.form.submit()" >

<
input type="button" name="Guardar" onClick="document.formulario.accion.value='guardar';this.form.submit()" >

</
form
Entre otras cosas .. con la opción del campo hidden y javascript me evito problemas con el nombre de la variable que tendría el botón .. para tener libertad en poner nombre del boton (el texto que tendrá) cómo: "lo que sea bla bla" ..

Un saludo,

pd: Si no funciona correctamente la parte javacript .. pregunta mejor en el foro javacript (lo escribí e memoria y .. javascript no es mi fuerte xD)
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 24/09/2003 a las 23:42
  #8 (permalink)  
Antiguo 25/09/2003, 21:54
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Vale Cluster, ahora entendi y lo voy a probar


Saludos
Reckba
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:10.