Vamos a tratar de modelar lo que hace el gmail a la hora de eliminar los correos en la vista estándar (sin refrescar la pagina), esto se logra usando ajax. La función ajax(url,[name],target) utilizada en este ejemplo viene por defecto con el Web2py y está basada en jQuery $.ajax.
en el modelo
db.py:
# recuerde llenar la tabla
db.define_table('gmail',
Field('correo'))
..................................................................
en la vista
index.html:
{{extend 'layout.html'}}
<INPUT type="button" value="suprimir" onclick="ajax('{{=URL('data')}}',['hijos'],'target');"/><br/><br/>
<span id='target'>
{{if len(lista):}}
{{for row in lista:}}
{{=INPUT(_type='checkbox', _name='hijos', _value=row.id)}}
<span style='margin-left:0%'>{{=row.correo}}</span><br/>
{{pass}}
{{else:}}
No hay datos
{{pass}}
</span>
.....................................................................................
en la controladora
default.py
def index():
lista = db(db.gmail).select()
return dict(lista=lista)
def data():
listado = []
if request.vars.hijos:
listacheck = request.vars.hijos
if not isinstance(listacheck,list):
listacheck=[listacheck,]
for elem in listacheck:
db(db.gmail.id== elem).delete()
if(db(db.gmail.id > 0).count()==0):
return 'No hay datos'
else:
pass
for row in db(db.gmail).select():
listado.append(INPUT(_type='checkbox',_name='hijos',_value=row.id))
listado.append(SPAN(row.correo,_style='margin-left:0.5%'))
listado.append(BR())
a = DIV(listado)
return a
...............................................................................
en el modelo
db.py:
# recuerde llenar la tabla
db.define_table('gmail',
Field('correo'))
..................................................................
en la vista
index.html:
{{extend 'layout.html'}}
<INPUT type="button" value="suprimir" onclick="ajax('{{=URL('data')}}',['hijos'],'target');"/><br/><br/>
<span id='target'>
{{if len(lista):}}
{{for row in lista:}}
{{=INPUT(_type='checkbox', _name='hijos', _value=row.id)}}
<span style='margin-left:0%'>{{=row.correo}}</span><br/>
{{pass}}
{{else:}}
No hay datos
{{pass}}
</span>
.....................................................................................
en la controladora
default.py
def index():
lista = db(db.gmail).select()
return dict(lista=lista)
def data():
listado = []
if request.vars.hijos:
listacheck = request.vars.hijos
if not isinstance(listacheck,list):
listacheck=[listacheck,]
for elem in listacheck:
db(db.gmail.id== elem).delete()
if(db(db.gmail.id > 0).count()==0):
return 'No hay datos'
else:
pass
for row in db(db.gmail).select():
listado.append(INPUT(_type='checkbox',_name='hijos',_value=row.id))
listado.append(SPAN(row.correo,_style='margin-left:0.5%'))
listado.append(BR())
a = DIV(listado)
return a
...............................................................................
Buena...
ResponderEliminar