PHP - Ayuda con ejecucion de codigo PHP en base a seleccion de usuario en formulario HTML

   
Vista:

Ayuda con ejecucion de codigo PHP en base a seleccion de usuario en formulario HTML

Publicado por Matias (2 intervenciones) el 08/04/2014 22:11:02
Hola, antes que nada me presento. Mi nombre es Matias, tengo 24 años y estoy comenzando en este interesante mundo de la programación.
LLevo varias horas tras el ordenador leyendo y aprendiendo PHP, pero como dicen "la práctica hace al maestro", estoy empezando mi primer programa web y no me esta resultando para nada fácil y es por ello que estoy aquí para solicitar ayuda y desde ya agradezco vuestra atención y tiempo invertido en mi problema.

El programa en cuestión, trata sobre operaciones de prueba en Forex (http://es.wikipedia.org/wiki/Mercado_de_divisas).

La función que realiza es la siguiente:

1 - Cada usuario registrado, accede a un gráfico donde selecciona la divisa que quiere analizar.
2 - Para realizar una operación de prueba tiene el siguiente listbox que contiene los símbolos de las divisas con las que desea operar, ya que el gráfico es un script independiente :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<body>
<FORM METHOD = "GET" ACTION = "op_forex.php">
<!--Seleccion de simbolo-->
<div align="center">
Simbolo<br />
<select name="simbol" >
<option value="">Seleccione</option>
  <option value="eurusd">EUR/USD</option>
  <option value="usdchf">USD/CHF</option>
</select><br />
<!--Seleccion de tipo-->
Tipo<br />
<select name="tipo">
  <option value="buy">Compra</option>
  <option value="sell">Venta</option>
</select><br />
<br />
</div>
<INPUT TYPE = Submit VALUE = "Ejecutar">
<!--fin-->

3 - Hasta aquí todo bien, una vez seleccionado el simbolo se pasan los datos para ser registrados en Mysql.
La base de datos Mysql contiene las siguientes tablas que deben ser completadas en base a los datos que se obtuvieron en el formulario html:
1 - ID (primario, ai) -->
2 - Simbolo------------->
3 - Tipo------------------->
4 - Cotizacion----------->
5 - Fecha---------------->
6 - Capital Requerido>
7 - Estado--------------->

Muy bien, el código que recoge los datos y los registra en la db es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<body>
<?php
 
 require($_SERVER["DOCUMENT_ROOT"]."/op/db.php");
 
$conexion = mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
 
mysql_select_db($db_name, $conexion);
 
$consulta = "INSERT INTO operaciones (Simbolo,Tipo,Cotizacion,Fecha,CapitalRequerido,Estado) VALUES('".$simbol."','".$tipo."','".$cotizacion."','".$fecha."','".$capitalrequerido."','".$estado."')";
 
$resultado = mysql_query($consulta, $conexion) or die ("No se puede realizar la operación");
 
?>
 
 
 
</body>

Aquí comienza el problema: Como podeis notar, las variables $cotizacion, $fecha, $capitalrequerido, $estado no se obtienen del formulario html, se obtienen de una fuente externa a través del siguiente código:
1
2
3
4
5
6
7
8
9
10
11
<!--Código para extraer cotizaciónes-->
<?php
function between($beg, $end, $str) {
$a = explode($beg, $str, 2);
$b = explode($end, $a[1]);
return $beg . $b[0] . $end;
}
$url = file_get_contents ("https://es.finance.yahoo.com/q?s=EURUSD=X");
$extract_string = between('<span id="yfs_l10_eurusd=x">', '</span>', $url);
echo $extract_string
?>

Entonces, el problema en el cual necesito orientación sobre como puedo resolverlo es el siguiente:

(Volviendo al formulario html) Supongamos que el usuario, escoge "EURUSD" mi programa en base a su selección debe definir con el código para extraer las cotizaciónes, la cotización (valga la redundancia) de esa divisa y guardarla en el campo $cotización en la base de datos.


---Para que se entienda: Si el usuario selecciona [1] , se debe ejecutar el código que extrae la información sobre [1] y esa información obtenida se guarda en la db---
---Para que se entienda: Si el usuario selecciona [2] , se debe ejecutar el código que extrae la información sobre [2] y esa información obtenida se guarda en la db---


Pensaba hacerlo con if, else o switch e ir ejecutando el código correspondiente (previamente escrito sobre cada selección) para extraer las cotizaciones en base a la selección del usuario.

El problema surge que no encuentro la forma de pasar la selección del usuario en el código html a PHP para que este ejecute el código correspondiente en base a su seleccion, lo aplique a la variable [i]$cotizacion[/] y lo guarde en la base de datos.

¿Alguna sugerencia?
Desde ya, muchas gracias por vuestro tiempo y disculpad si es un "error de novato", estoy poniendo todos mis esfuerzos en aprender.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Ayuda con ejecucion de codigo PHP en base a seleccion de usuario en formulario HTML

Publicado por xve (5518 intervenciones) el 09/04/2014 07:38:00
Hola Matias, te agradezco mucho la explicación.... según entiendo, el problema es que sabes como capturar la variable pasada del formulario al código PHP, verdad?

El formulario lo envias por GET, por lo que para coger el valor de las variables, tienes que hacer:
$_GET["simbol"] y $_GET["tipo"]

Si las pasaras por POST seria:
$_POST["simbol"] y $_POST["tipo"]

Coméntanos si es esto, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda con ejecucion de codigo PHP en base a seleccion de usuario en formulario HTML

Publicado por Matias (2 intervenciones) el 09/04/2014 08:39:01
Hola! Muchas gracias por tu respuesta!
Fijate que casualidad entre al foro para publicar que acabo de dar con la misma solución que me has propuesto y va de maravillas!

Era mucho más sencillo de lo que pensaba! Si habra que leer para aprender!
Muchas gracias, en este momento resolví el problema pero 5 minutos antes hubiera sido de gran ayuda.

Dejo el código modificado por si a alguien se encuentra con el mismo problema y le resulta útil la solución:

Capturando los datos que ingresa el usuario:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<body>
<FORM METHOD = "POST" ACTION = "op_forex.php">
<!--Seleccion de simbolo-->
<div align="center">
Simbolo<br />
<select name="simbol" >
  <option value="eurusd">EURUSD</option>
  <option value="USDCHF">USDCHF</option>
</select><br />
<!--Seleccion de tipo-->
Tipo<br />
<select name="tipo">
  <option value="buy">Compra</option>
  <option value="sell">Venta</option>
</select><br />
<br />
</div>
<INPUT TYPE = Submit VALUE = "Ejecutar">
<!--fin-->
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"../../SpryAssets/SpryMenuBarRightHover.gif"});
</script>
</body>

Pasando las variables con $_POST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
*/ Si el dato ingresado por el usuario en el formulario "simbol" es igual "eurusd" se ejecuta el código, si no, se imprime en pantalla "error".
if($_POST['simbol'] == "eurusd") {
function between($beg, $end, $str) {
$a = explode($beg, $str, 2);
$b = explode($end, $a[1]);
return $beg . $b[0] . $end;
}
$url = file_get_contents ("https://es.finance.yahoo.com/q?s=EURUSD=X");
$extract_string = between('<span id="yfs_l10_eurusd=x">', '</span>', $url);
echo $extract_string
; } else {
	echo ("error");
}
 
?>

Ahora estoy leyendo en la documentación php sobre switch, para hacer la cadena de ejecución segun la selección escogida por el usuario.

PD: Fue una gran satisfacción haber resuelto mi primer problema en php por mi cuenta y lo es también saber que se puede contar con gente que también esta dispuesta a ayudarte a resolverlo.
¿Será este el comienzo de un largo camino de errores y soluciones?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar