En este ejemplo vamos a crear una ventana emergente desde la cual insertaremos datos y los mismos se mostrarán en la ventana padre sin refrescar la página, también desde la ventana emergente crearemos una segunda ventana emergente y repetiremos la operación pero esta vez los datos se mostrarán en la primera ventana emergente.
en el modelo.............................
db.define_table('usuario',
Field('usuario',))
db.define_table('tabla',
Field('numero',))
en la controladora.............................
def index():
return dict()
def formulario():
form = FORM(INPUT(_name='name',_id='name',requires=IS_NOT_EMPTY()),INPUT(_type='submit'))
close = ' '
if form.accepts(request.vars,session):
db.usuario.insert(usuario = request.vars.name)
close = XML('<script type="text/javascript">$(document).ready(function() { window.opener.cierra() ;});</script>')
return dict(form=form,close=close)
def formulario2():
form = FORM(INPUT(_name='name',_id='name',requires= IS_INT_IN_RANGE(0, 9)),INPUT(_type='submit'))
close = ' '
if form.accepts(request.vars,session):
db.tabla.insert(numero = request.vars.name)
close = XML('<script type="text/javascript">$(document).ready(function() { window.opener.cierra() ;});</script>')
return dict(form=form,close=close)
def listausuarios():
listado = []
for elem in db(db.usuario).select():
listado.append(elem.usuario + "<br/>")
return listado
def listanumeros():
listado = []
for elem in db(db.tabla).select():
listado.append(elem.numero + "<br/>")
return listado
en la vista................................................................
index.html.......................
<input type='button' value='añadir' class='link' onclick="abreVentana()" >
<br/><br/>
<div id='target'> </div>
<script>
var miPopup
$(document).ready(function(){
cargarLista();
});
function abreVentana(){
miPopup = window.open("{{=URL(r=request, f='formulario')}}","miwin","width=500,height=400,scrollbars=yes")
miPopup.focus()
}
function cierra()
{
cargarLista();
miPopup.close();
}
function cargarLista(){
$('#target').load('listausuarios');
}
</script>
formulario.html........................
{{=close}}
{{=form}}<br/>
<div style='margin-left:1%'>
<input type='button' value='añadir' class='link' onclick="abreVentana()" >
<br/><br/>
<div id='target'> </div>
</div>
<script>
var miPopup2
$(document).ready(function(){
cargarLista();
});
function abreVentana(){
miPopup2 = window.open("{{=URL(r=request, f='formulario2')}}","miwin2","width=500,height=400,")
miPopup2.focus()
}
function cierra()
{
cargarLista();
miPopup2.close();
}
function cargarLista(){
$('#target').load('listanumeros');
}
</script>
formulario2.html........................
{{=close}}
{{=form}}
en el modelo.............................
db.define_table('usuario',
Field('usuario',))
db.define_table('tabla',
Field('numero',))
en la controladora.............................
def index():
return dict()
def formulario():
form = FORM(INPUT(_name='name',_id='name',requires=IS_NOT_EMPTY()),INPUT(_type='submit'))
close = ' '
if form.accepts(request.vars,session):
db.usuario.insert(usuario = request.vars.name)
close = XML('<script type="text/javascript">$(document).ready(function() { window.opener.cierra() ;});</script>')
return dict(form=form,close=close)
def formulario2():
form = FORM(INPUT(_name='name',_id='name',requires= IS_INT_IN_RANGE(0, 9)),INPUT(_type='submit'))
close = ' '
if form.accepts(request.vars,session):
db.tabla.insert(numero = request.vars.name)
close = XML('<script type="text/javascript">$(document).ready(function() { window.opener.cierra() ;});</script>')
return dict(form=form,close=close)
def listausuarios():
listado = []
for elem in db(db.usuario).select():
listado.append(elem.usuario + "<br/>")
return listado
def listanumeros():
listado = []
for elem in db(db.tabla).select():
listado.append(elem.numero + "<br/>")
return listado
en la vista................................................................
index.html.......................
<input type='button' value='añadir' class='link' onclick="abreVentana()" >
<br/><br/>
<div id='target'> </div>
<script>
var miPopup
$(document).ready(function(){
cargarLista();
});
function abreVentana(){
miPopup = window.open("{{=URL(r=request, f='formulario')}}","miwin","width=500,height=400,scrollbars=yes")
miPopup.focus()
}
function cierra()
{
cargarLista();
miPopup.close();
}
function cargarLista(){
$('#target').load('listausuarios');
}
</script>
formulario.html........................
{{=close}}
{{=form}}<br/>
<div style='margin-left:1%'>
<input type='button' value='añadir' class='link' onclick="abreVentana()" >
<br/><br/>
<div id='target'> </div>
</div>
<script>
var miPopup2
$(document).ready(function(){
cargarLista();
});
function abreVentana(){
miPopup2 = window.open("{{=URL(r=request, f='formulario2')}}","miwin2","width=500,height=400,")
miPopup2.focus()
}
function cierra()
{
cargarLista();
miPopup2.close();
}
function cargarLista(){
$('#target').load('listanumeros');
}
</script>
formulario2.html........................
{{=close}}
{{=form}}
No hay comentarios:
Publicar un comentario