Cambiar href de un enlace con Jquery
1 |
<br /><br />$('.carrito_botonera_finalizar').attr({ <br /> 'href': '/proyecto/miEnlace.jsp',<br />});<br /><br /> |
1 |
<br /><br />$('.carrito_botonera_finalizar').attr({ <br /> 'href': '/proyecto/miEnlace.jsp',<br />});<br /><br /> |
Scroll abajo:
1 |
$("html, body").animate({ scrollTop: $(document).height() }, "slow"); |
Scroll arriba:
1 |
$("html, body").animate({ scrollTop: 0 }, "slow"); |
Demo: Arriba | Abajo
Para una aplicación que sirve para gestionar las tareas de mantenimiento de sistemas, me surgió la necesidad de usar Jtable con Symfony, al ver que apenas había información en internet de cómo implementarlo decidí publicarlo para quién lo necesite: tareas.html.twig
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{% extends "::base.html.twig" %} {% block title "Mantenimiento de sistemas" %} {% block stylesheets %} {% endblock %} {% block body %} |
Mantenimiento de sistemas Refrescar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{% endblock %} {% block javascripts %} {% endblock %} {% set code = code(_self) %} |
routing.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
avisa2_mantenimiento_tareas: pattern: /tareas/ defaults: { _controller: Avisa2MantenimientoBundle:Default:tareas } avisa2_mantenimiento_tareas_listar: pattern: /tareas/listar/ defaults: { _controller: Avisa2MantenimientoBundle:Default:tareas_listar } avisa2_mantenimiento_tareas_crear: pattern: /tareas/crear/ defaults: { _controller: Avisa2MantenimientoBundle:Default:tareas_crear } avisa2_mantenimiento_tareas_modificar: pattern: /tareas/modificar/ defaults: { _controller: Avisa2MantenimientoBundle:Default:tareas_modificar } avisa2_mantenimiento_tareas_eliminar: pattern: /tareas/eliminar/ defaults: { _controller: Avisa2MantenimientoBundle:Default:tareas_eliminar } avisa2_mantenimiento_tareas_listar_equipos: pattern: /tareas/listar/equipos/ defaults: { _controller: Avisa2MantenimientoBundle:Default:tareas_listar_equipos } avisa2_mantenimiento_tareas_listar_actividades: pattern: /tareas/listar/actividades/ defaults: { _controller: Avisa2MantenimientoBundle:Default:tareas_listar_actividades } |
DefaultController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
render('Avisa2MantenimientoBundle:Default:index.html.twig'); } public function tareasAction() { return $this->render('Avisa2MantenimientoBundle:Default:tareas.html.twig', array('name' => $name)); } public function tareas_listarAction() { $bd=Bd::getInstance(); /* Tomamos el numero de resultados */ $resultado = $bd->ejecutar("SELECT COUNT(*) AS RECORDCOUNT FROM CAL_TAREAS"); $fila = $bd->obtener_fila($resultado); $recordCount = $fila['RECORDCOUNT']; $sentencia_listar = "SELECT * FROM (SELECT ROWNUM ROW_NUM, A.* FROM (SELECT ID_TAREA, to_char(FECHA,'YYYY-MM-DD HH:MM:SS') AS FECHA, REALIZADA, ID_EQUIPO, ID_ACTIVIDAD FROM CAL_TAREAS ORDER BY REALIZADA, " . $_GET["jtSorting"].", REALIZADA) A) WHERE ROW_NUM BETWEEN ".$_GET["jtStartIndex"]." AND ".((int) $_GET["jtPageSize"]+$_GET["jtStartIndex"])." ORDER BY REALIZADA, " . $_GET["jtSorting"]; //echo $sentencia_listar; //Get records from database $resultado = $bd->ejecutar($sentencia_listar); //Add all records to an array $filas = array(); while($fila = $bd->obtener_fila($resultado)) { $filas[] = $fila; } //Return result to jTable $jTableResult = array(); $jTableResult['Result'] = "OK"; $jTableResult['TotalRecordCount'] = $recordCount; $jTableResult['Records'] = $filas; $JsonResponse = new Response(json_encode($jTableResult)); return $JsonResponse; } public function tareas_crearAction() { $bd=Bd::getInstance(); $stmt_autoincremento = $bd->ejecutar("SELECT CAL_TAREAS_SEC.NEXTVAL FROM DUAL"); $autoincremento_array = $bd->obtener_fila($stmt_autoincremento); $autoincremento=$autoincremento_array[0]; //Insert record into database $result = $bd->ejecutar("INSERT INTO CAL_TAREAS (ID_TAREA, FECHA, REALIZADA, ID_EQUIPO, ID_ACTIVIDAD) VALUES($autoincremento, TO_DATE('".$_POST["FECHA"]."', 'YYYY/MM/DD'), '".$_POST["REALIZADA"]."', ".$_POST["ID_EQUIPO"].", ".$_POST["ID_ACTIVIDAD"].")"); $bd->commit(); //Get last inserted record (to return to jTable) $result = $bd->ejecutar("SELECT ID_TAREA, to_char(FECHA,'YYYY-MM-DD HH:MM:SS') AS FECHA, REALIZADA, ID_EQUIPO, ID_ACTIVIDAD FROM CAL_TAREAS WHERE ID_TAREA=$autoincremento"); $row = $bd->obtener_fila($result); //Return result to jTable $jTableResult = array(); $jTableResult['Result'] = "OK"; $jTableResult['Record'] = $row; $JsonResponse = new Response(json_encode($jTableResult)); return $JsonResponse; } public function tareas_modificarAction() { $bd=Bd::getInstance(); //Udapte record into database $sql = "UPDATE CAL_TAREAS SET FECHA=TO_DATE('".$_POST["FECHA"]."', 'YYYY/MM/DD'), REALIZADA='".$_POST["REALIZADA"]."', ID_EQUIPO=".$_POST["ID_EQUIPO"].", ID_ACTIVIDAD=".$_POST["ID_ACTIVIDAD"]." WHERE ID_TAREA=".$_POST["ID_TAREA"]; $stmt=$bd->ejecutar($sql); $bd->commit(); //Return result to jTable $jTableResult = array(); $jTableResult['Result'] = "OK"; $JsonResponse = new Response(json_encode($jTableResult)); return $JsonResponse; } public function tareas_eliminarAction() { $bd=Bd::getInstance(); //Delete record into database $sql = "DELETE FROM CAL_TAREAS WHERE ID_TAREA='".$_POST["ID_TAREA"]."'"; $stmt=$bd->ejecutar($sql); $bd->commit(); //Return result to jTable $jTableResult = array(); $jTableResult['Result'] = "OK"; $JsonResponse = new Response(json_encode($jTableResult)); return $JsonResponse; } public function tareas_listar_equiposAction() { $bd=Bd::getInstance(); $sentencia_listar = "SELECT ID_EQUIPO, EQUIPO FROM CAL_EQUIPOS"; //Get records from database $resultado = $bd->ejecutar($sentencia_listar); //Add all records to an array $filas = array(); while($fila = $bd->obtener_fila($resultado)) { $filas0["DisplayText"] = $fila["EQUIPO"]; $filas0["Value"] = $fila["ID_EQUIPO"]; $filas[]=$filas0; } //Return result to jTable $jTableResult = array(); $jTableResult['Result'] = "OK"; $jTableResult['Options'] = $filas; $JsonResponse = new Response(json_encode($jTableResult)); return $JsonResponse; } public function tareas_listar_actividadesAction() { $bd=Bd::getInstance(); $sentencia_listar = "SELECT ID_ACTIVIDAD, ACTIVIDAD FROM CAL_ACTIVIDADES"; //Get records from database $resultado = $bd->ejecutar($sentencia_listar); //Add all records to an array $filas = array(); while($fila = $bd->obtener_fila($resultado)) { $filas0["DisplayText"] = $fila["ACTIVIDAD"]; $filas0["Value"] = $fila["ID_ACTIVIDAD"]; $filas[]=$filas0; } //Return result to jTable $jTableResult = array(); $jTableResult['Result'] = "OK"; $jTableResult['Options'] = $filas; $JsonResponse = new Response(json_encode($jTableResult)); return $JsonResponse; } } |
Bd.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
conectar(); } /*Evitamos el clonaje del objeto. Patrón Singleton*/ private function __clone(){ } /*Función encargada de crear, si es necesario, el objeto. Esta es la función que debemos llamar desde fuera de la clase para instanciar el objeto, y así, poder utilizar sus métodos*/ public static function getInstance(){ if (!(self::$_instance instanceof self)){ self::$_instance=new self(); } return self::$_instance; } /*Realiza la conexión a la base de datos.*/ private function conectar(){ /* Variables de entorno */ $db = "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP.BASE.DE.DATOS)(PORT=1521)))(CONNECT_DATA=(SID=NOMBREBD)))"; try { /* Conexión a Oracle */ $oracle_conexion = oci_connect('USUARIO', 'CONTRASEÑA', $db, 'AL32UTF8'); if (!$oracle_conexion) { $e = oci_error(); throw new Exception($e); } $this->link = $oracle_conexion; } catch (Exception $e) { } } /*Método para ejecutar una sentencia sql*/ public function ejecutar($sql){ /* Preparamos */ $this->stmt= oci_parse($this->link, $sql); if (!$this->stmt) { $e = oci_error($this->stmt); echo htmlentities($e['message']." Sentencia: ".$sql); exit; } /* Ejecutamos */ $this->res = oci_execute($this->stmt, OCI_DEFAULT); if (!$this->res) { $e = oci_error($this->stmt); echo htmlentities($e['message']." Sentencia: ".$sql); exit; } /* Devolvemos los valores obtenidos para listarlos despues con "obtener_filas()" */ return $this->stmt; } /*Método para ejecutar una sentencia sql*/ public function ejecutar_old($sql){ /* Preparamos */ $this->stmt= oci_parse($this->link, $sql); if (!$this->stmt) { $e = oci_error($this->stmt); echo htmlentities($e['message']); exit; } /* Ejecutamos */ $this->res = oci_execute($this->stmt, OCI_DEFAULT); if (!$this->res) { $e = oci_error($sentencia_oracle_insertar); echo htmlentities($e['message']); exit; } return $this->res; // No hace falta devolver nada } /*Método para ejecutar un commit */ public function commit(){ $this->stmt= oci_parse($this->link, "commit"); if (!$this->stmt) { $e = oci_error($this->stmt); echo htmlentities($e['message']); exit; } $this->res = oci_execute($this->stmt, OCI_DEFAULT); if (!$this->res) { $e = oci_error($sentencia_oracle_insertar); echo htmlentities($e['message']); $this->mail_oracle (htmlentities($e['message'])." Sentencia: ".$sql); exit; } } /*Método para obtener una fila de resultados de la sentencia sql*/ public function obtener_fila($stmt){ $this->array= oci_fetch_array($stmt, OCI_RETURN_NULLS); return $this->array; } } ?> |