Hola, tengo una pagina en la que quiero dar de alta un dispositivo. un dispositivo consta de su tipo, marca, y modelo. La pagina consta de un formulario. Ahora bien, tengo unos enlaces de ingreso rápido. Si no tengo un tipo determinado quiero agregarlo a través de una nueva ventana sin necesidad de tener que salir de donde me encuentro. Aquí es donde hago uso del plugin Modal de bootstrap. El problema viene cuando intento guardar el tipo que no se encuentra registrado. Al darle al boton de guardar dentro de mi modal realmente lo que hace es pulsar el boton de mi formulario de dispositivo y por tanto me falla la BD. Pongo código e imágenes para que se entienda mejor.
{include file="includes/header.tpl"}
{if isset($error1)}
<p class="alert alert-error" style="margin: 1px;"><i class="icon-exclamation-sign"></i>{$error1}
{/if}
{if isset($error2)}
<p class="alert alert-error" style="margin: 1px;"><i class="icon-exclamation-sign"></i>{$error2}
{/if}
{if isset($success)}
<p class="alert alert-success" style="margin: 1px;"><i class="icon-ok"></i>{$success}
{/if}
<form class="form-horizontal" id="adddispositivo" action="{$ruta}dispositivo_controller/addDispositivo" method="POST">
<fieldset>
<legend>Nuevo dispositivo</legend>
<div class="control-group">
<label class="control-label" for="tipo_dispositivo">Tipo de dispositivo</label>
<div class="controls">
<select name="tipo_dispositivo" id="tipo_dispositivo">
<option value=""></option>
{section name=fila loop=$tipo}
<option value="{$tipo[fila]['id']}">{$tipo[fila]['nombre']}</option>
{/section}
</select>
<a class="btn" id="modal1" data-toggle="modal" href="#myModal1" rel="tooltip" title="Añade tipo de dispositivo"><i class="icon-plus"></i></a>
<div class="modal hide fade in" id="myModal1" style="display: none;">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Ingresar nueva marca</h3>
</div>
<div class="modal-body">
<form class="FormTipo">
<fieldset>
<div class="modal-body">
<ul class="nav nav-list">
<li class="nav-header">Name</li>
<li><input class="input-xlarge" value="" type="text" name="nombre" id="nombre"></li>
</ul>
</div>
</fieldset>
</form>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
<button class="btn btn-success" id="submit2">Guardar</button>
</div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="marca_dispositivo">Marca</label>
<div class="controls">
<select name="marca_dispositivo" id="marca_dispositivo">
<option value=""></option>
{section name=mar loop=$marca}
<option value="{$marca[mar]['id']}">{$marca[mar]['nombre']}</option>
{/section}
</select>
<a class="btn" id="modal2" data-toggle="modal" href="#myModal2" rel="tooltip" title="Añade una marca"><i class="icon-plus"></i></a>
<div class="modal hide fade in" id="myModal2" style="display: none;">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Cabecera de la ventana</h3>
</div>
<div class="modal-body">
<p>Aqui meto un formulario</p>
</div>
<div class="modal-footer">
<a href="#" class="btn">Close</a>
<a href="#" class="btn btn-primary">Save changes</a>
</div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="modelo_dispositivo">Modelo</label>
<div class="controls">
<select name="modelo_dispositivo" id="modelo_dispositivo">
</select>
<a class="btn" id="modal3" data-toggle="modal" href="#myModal3" rel="tooltip" title="Añade modelo"><i class="icon-plus"></i></a>
<div class="modal hide fade in" id="myModal3" style="display: none;">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Cabecera de la ventana</h3>
</div>
<div class="modal-body">
<p>Aqui meto un formulario</p>
</div>
<div class="modal-footer">
<a href="#" class="btn">Close</a>
<a href="#" class="btn btn-primary">Save changes</a>
</div>
</div>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Guardar</button>
<button class="btn">Borrar Formulario</button>
</div>
</fieldset>
</form>
{literal}
<script src="bootstrap-modal.js"></script>
<script src="bootstrap-tooltip.js"></script>
<script>
$(function () {
$('#modal1').tooltip();
});
$(function () {
$('#modal2').tooltip();
});
$(function () {
$('#modal3').tooltip();
});
</script>
<script>
$(document).ready(function(){
$('#adddispositivo').validate({
errorElement: "span",
rules:
{
marca: {required: true},
modelo: {required: true},
tipo: {required: true}
},
messages:
{
marca:"Escribe una marca correcta",
modelo:"Escribe un modelo correcto",
tipo:"Elige un tipo de dispositivo."
},
highlight: function(element)
{
$(element).closest('.control-group')
.removeClass('success').addClass('error');
},
success: function(element)
{
element
.text('OK!').addClass('help-inline')
.closest('.control-group')
.removeClass('error').addClass('success');
}
});
});
</script>
<script>
$(document).ready(function(){
// Parametros para el marca_dispositivo
$("#marca_dispositivo").change(function () {
$("#marca_dispositivo option:selected").each(function () {
//alert($(this).val());
elegido=$(this).val();
$.post("marca_dispositivo", { elegido: elegido }, function(data){
$("#modelo_dispositivo").html(data);
});
});
})
});
</script>
<script>
$(function() {
//twitter bootstrap script
$("button#submit2").click(function(){
$.ajax({
type: "POST",
url: "http://localhost/pfcdata/dispositivo_controller/addTipoDispositivo",
data: $('form.FormTipo').serialize(),
success: function(msg){
$("#modal1").modal('hide');
},
error: function(){
alert("failure");
}
});
});
});
</script>
{/literal}
{include file="includes/footer.tpl"}