Función Ajax carga div con datos incorrectos y duplica elementos de la página

66 views
Skip to first unread message

isi_jca

unread,
Jun 3, 2016, 9:25:05 PM6/3/16
to web2py-usuarios
Hola gente!!!

1) Tengo un formulario creado de acuerdo a lo especificado en el archivo formulario.py  y este es el contenido de la vista

{{extend 'layout.html'}}
<h3>Datos personales</h3>
<hr>
{{=A("Atrás",_class="button btn btn-default" ,_href=URL('persona','altadatos',args=(nrodoc,sexo)))}}
<br>
<br>
{{=form}}
<br>

2) Cuando se carga la página esta tiene el aspecto del archivo adjunto pantalla1.png, pero luego de seleccionar una provincia para filtrar localidades esta tiene el aspecto del archivo adjunto pantalla2.png


3) Este mensaje aparece en la Consola del navegador:

jquery.js:4 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

4) En un principio estaba usando vvmselectwidget-dropdown-chain-cascade-widget con pocos datos funciona muy bien, pero al intentar utilizarlo en una tabla que contiene alrededor de 50.000 filas demora mucho en crear la lista desplegable


5) Como se puede apreciar el sitio esta montado sobre https://xxx.xxxx.xxx.xxx/SRMSE/persona/abmpersona/0/14523678/F pero no tiene un certificado generado

¿Alguien idea de que puede estar pasando?

Saludos cordiales.
Pantalla1.png
Pantalla2.png
formulario.py

isi_jca

unread,
Jun 5, 2016, 5:26:35 PM6/5/16
to web2py-usuarios
Hola Gente:

Les comento que pude solucionar el problema realizando lo siguiente:

1) Modifique la función de la siguiente manera

def fgetlocalidad():
    idprovincia = 0
    result=''
    idprovincia = int(request.vars.idprovincia)
    localidad_rows = db(db.trlocalidad.idprovincia==idprovincia).select(orderby=db.trlocalidad.localidad_cp)
    result = '<td><label class="control-label col-sm-3" id="label_localidad">Localidad:</label> '
    result += '<select class="idlocalidad" id="idlocalidad" name="idlocalidad"> '
    for item in localidad_rows:
        result += '<option value=' + str(item.id) + '>' + item.localidad_cp + '</option>'  
    result += '</select></td>'
    return XML(result)

2) En la funcion def abmpersona():

define la url de esta manera:

url=URL(c='persona',f='fgetlocalidad')

Modifique la línea donde llamo a la función de esta manera:

TR(TD( (LABEL("Provincia:",_class='control-label col-sm-3',_id='label_provincia'),
          SELECT(_id="idprovincia",_class="idprovincia",_name="idprovincia",*[OPTION(i['descripcion'], 
           _value=str(i['id'])) for i in provincia_row])),_onchange="ajax('%s' , ['idprovincia'], 'ciudad');" % url)),


Saludos cordiales.

Reply all
Reply to author
Forward
0 new messages