Controlador:
/** * @Route("/areas/ecuacion", name="ecuacion") */ public function ecuacion() { $request = Request::createFromGlobals(); $a = $request->request->get('a'); $b = $request->request->get('b', 1); $c = $request->request->get('c', 1); if (!is_numeric($c) || !is_numeric($b) || !is_numeric($a)) { return $this->render('areas/error.html.twig', ['mensaje' => 'Los valores deben ser numéricos', 'url'=>'/areas']); } $raiz = $b * $b - 4 * $a * $c; if ($raiz < 0) { $raiz1 = "No existe"; $raiz2 = "No existe"; } elseif ($raiz == 0) { $raiz1 = -$b / ($a * 2); $raiz2 = $raiz1; } else { $raiz1 = (-$b + sqrt($raiz)) / ($a * 2); $raiz2 = (-$b - sqrt($raiz)) / ($a * 2); } return $this->render('areas/ecuacion.html.twig', ['raiz1' => $raiz1, 'raiz2' => $raiz2, 'valores'=>[$a,$b,$c]]); }
Vistas:
<form action="areas/ecuacion" method="post"> <input type="number" name="a">x<sup>2</sup>+ <input type="number" name="b"> x+ <input type="number" name="c"><br/> <input type="submit"> </form>
{% extends 'base.html.twig' %} {% block title %}Hello!{% endblock %} {% block body %} <h1>Las soluciones de la ecuación {{valores[0]}}x<sup>2</sup>+{{valores[1]}}x+{{valores[2]}} son:</h1> {% if raiz1=='No existe' %} <p>La ecuación no tiene soluciones reales, quizás imaginarias</p> <!-- <img src="{{ asset('img/ninguna.gif') }}" alt=""/>--> {% elseif raiz1==raiz2 %} <p>La ecuación tiene una sóla raiz: {{raiz1}}</p> <!-- <img src="{{ asset('img/una.png') }}" alt=""/>--> {% else %} <p>Raiz 1: {{raiz1}}</p> <p>Raiz 2: {{raiz2}}</p> <!-- <img src="{{ asset('img/dos.png') }}" alt=""/>--> {% endif %} <iframe src="http://graph.tk/" id="my_graph" style="width:500px;height:400px"> </iframe> <script> var my_graph=document.getElementById("my_graph"); my_graph.onload=function(){ function g(m){ my_graph.contentWindow.postMessage(m,"http://graph.tk"); }; g("add:{{valores[0]}}x^2+{{valores[1]}}x+{{valores[2]}}"); g("center:0,0"); } </script> {% endblock %}