Si usas Bootstrap en tus desarrollos, a veces tendrás la necesidad de abrir o cerrar una ventana modal desde una función de JavaScript y no haciendo clic en un elemento del DOM de la página, cómo por ejemplo desde el botón de cerrar [X] que hay en cada ventana modal.
Si tienes un modal definido así:
<div class="modal fade" id="exampleModal" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> .... </div>
para abrirlo sería:
$('#exampleModal').modal({ show:true });
y para cerrarlo sería:
$('#exampleModal').modal('hide')
Si al cerrar el modal quereis ejecutar código javascript sería así:
$("#exampleModal").on("hidden.bs.modal", function () {
// Aquí va el código a ejecutar cuando se dispara el evento de cerrar la ventana modal
});
Y si queréis abrir un modal desde otro modal, y que el nuevo modal quede por encima, hay que usar style=»z-index: numero;» en la declaración del modal.
Imaginar que tenemos dos modales:
<div class="modal fade"
id="md_Abajo"
role="dialog"
aria-labelledby="md_AbajoEtiq"
aria-hidden="true">
....
</div>
<div class="modal fade"
id="md_Arriba"
role="dialog"
aria-labelledby="md_ArribaEtiq"
aria-hidden="true">
....
</div>
Pues para que los modales se apilen como se espera, debe ordenarlos en su marca de HTML de menor a mayor.
Se pone en la declaración del modal lo siquiente: style=´z-index: XXX;´ donde XXX indica el orden de menor a mayor. Los numeros con z-index menores son los que quedan por debajo.
En nuestro ejemplo:
Modal que queda por abajo
<div class="modal fade"
id="md_Abajo"
role="dialog"
aria-labelledby="md_AbajoEtiq"
aria-hidden="true"
style="z-index: 1600">
Modal que queda por encima:
<div class="modal fade"
id="md_Arriba"
role="dialog"
aria-labelledby="md_ArribaEtiq"
aria-hidden="true"
style="z-index: 1900">
Sé que puede parecer una tontería si ya sabeis cómo funciona, pero para los que nos iniciamos, nos viene bien siempre un poco de ayuda.
En alguna ocasión, nos hemos visto en la necesidad de tener select editables en nuestros formularios. Esto ocurre cuando queremos elegir una opción de una lista desplegables, pero también poder añadir un elemento nuevo a esta lista. He encontrado varias soluciones, pero la que más me gustó y la más sencilla de implementar es la que os comento. No es necesario añadir librería de javaScript. Únicamente unas lineas de CSS y de HTML.
El código CSS es el siguiente:
.select-editable {position:relative; background-color:white; border:solid grey 1px; width:120px; height:18px;}
.select-editable select {position:absolute; top:0px; left:0px; font-size:14px; border:none; width:120px; margin:0;}
.select-editable input {position:absolute; top:0px; left:0px; width:100px; padding:1px; font-size:12px; border:none;}
.select-editable select:focus, .select-editable input:focus {outline:none;}
Y el código HTML, donde se define el select (y lo necesario) es el siguiente:
<div class="select-editable">
<select onchange="this.nextElementSibling.value=this.value">
<option value=""></option>
<option value="115x175 mm">115x175 mm</option>
<option value="120x160 mm">120x160 mm</option>
<option value="120x287 mm">120x287 mm</option>
</select>
<input type="text" name="format" value=""/>
</div>
Esta solución la encontré en StackOverflow, y podeís ver el funcionamiento en https://jsfiddle.net/nwH8A/
La lógica es sencilla. Básicamente lo que hace es, usando CSS, superponer el campo <input> encima del campo <select>, y con onchange=»this.nextElementSibling.value=this.value» hace que el valor del <select> cuando cambia (onchange) se guarde en el campo<input>. Y es el campo <input>, el que debéis de recoger en el POST, por que es donde va la información. En este caso se recogería con $_POST[«format»]
Yo lo único que hice es modificar un poco el CSS, para poder usarlo con Bootstrap. Este sería mi código CSS para que el <select> se vea con la apariencia que se muestra en Bootstrap.
.select-editable {position:relative}
.select-editable select {position:absolute; top:0px; left:0px; font-size:14px; color: #555; width:99%; height: 34px; padding: 4px; margin:0; border: 1px solid #ccc; border-radius: 4px;}
.select-editable input {position:absolute; top:0px; left:0px; font-size:14px; color: #555; width:90%; height: 31px; padding: 4px; margin:0; border: none;}
.select-editable select:focus, .select-editable input:focus {outline:none;}
Hay más opciones y soluciones, pero muchas de ellas necesitan añadir ficheros js y css a nuestro proyecto, y esta me pareció «la mar de sencilla».
Soy el responsable del departamento de Informática del Ayuntamiento del Real Sitio de San Ildefonso.
Mi cometido es mantener el parque informático y mantenimiento y desarrollo de todas las webs municipales.
La principal web es la Página oficial del Ayuntamiento del Real Sitio de San Ildefonso.
En esta web se refleja la información que se genera en el pueblo del Real Sitio de San Ildefonso (Segovia), ya sean noticias propias del ayuntamiento o información cultural
EL CMS usado es WordPress. También se usa PHP y jQuery para diversas funcionalidades que se han implementado fuera del CMS, y tambien se han programado plugins específicos para mostrar información relativa al Ayuntamiento del Real Sitio de San Ildefonso.
El tema que se usa es un tema propio, es decir, construido integramente para este proyecto.
Para el diseño se ha usado HTML5 y CCS3, además el diseño es adaptativo y se puede visualizar en ordenadores, tablets y móviles
Pero la web oficial del ayuntamiento no es la única . La lista de webs que desarrollo y mantengo se va incrementando poco a poco:
También diseño y desarrollo una intranet para uso interno de los trabajadores del Ayuntamiento
Página de la Sociedad Castellarnau. Está online desde 2010. Url
La Sociedad Castellarnau, de la que soy miembro, me encargó la realización de su página web. En esta página web, se refleja las inquietudes, pensamientos y conocimientos de los miembros de este Sociedad. El nexo común de todos nosotros es el amor que tenemos por el entorno de La Granja, Valsaín y la Sierra del Guadarrama.
La tecnología usada en la primera versión fué Php, Mysql, Html, Css, Javascript y el CMS también era propio y desarrollado por mí.
La he renovado en octubre del 2016 y he usado como CMS WordPress, y como tecnologías de diseño y programación Php, Mysql, Html5, Css3, Javascript, jQuery, Ajax, adaptando el diseño para dispositivos móviles. Para algunas funcionalidades programé plugins propios para guardar información en la base de datos y después mostrarla en la web pública.
Página personal sobre mi pueblo, Real Sitio de San Ildefonso. Está online desde 2006 y ahora, en el 2016, llegó el momento de rejuvenecerla.
En esta web se refleja toda (o casi toda) la información referente al pueblo de La Granja de San Ildefonso (Segovia). Este es el pueblo donde nací y crecí, y mi única intención es dar a conocer mi pueblo y las noticias referidas a él, ya sea para el turista que quiera visitarnos como para el vecino que quiera conocer las actividades y noticias que se producen en La Granja
La tecnología usada en l aprimera versión fué Php, Mysql, Html, Css, Javascript, Ajax y el CMS también era propio y desarrollado por mí.
El CMS, al ser propio, le aporta a esta web las funcionalidades necesarias para mostrar la información tal como yo quiero, las cuales no venían reflejadas en los CMS más comunes usados en aquellos años en el desarrollo web (WordPress, Joomla, Drupal). Otro de los motivos para no usar un CMS fué que está web la estaba manteniendo yo mismo, con lo cual, no necesitaba un CMS que me facilite la publicación de nueva información.
Pero, al hacer la nueva versión, evalué las necesidades y decidí usar WordPress para ello.
La he renovado en octubre del 2016 y he usado como CMS WordPress, y como tecnologías de diseño y programación Php, Mysql, Html5, Css3, Javascript, jQuery, Ajax, adaptando el diseño para dispositivos móviles. Adapté un tema de wordpress y para algunas funcionalidades programé plugins propios para guardar información en la base de datos y después mostrarla en la web.