Foros Néfele 4 Harbour › Foros › Dudas › Manejo Script
-
AutorEntradas
-
-
22-10-2020 a las 12:55 #1351XeviParticipante
Para validaciones/comprobaciones, utilizo scripts y ajax para, antes de ir a una nueva página, pues eso, comprobar donde ir.
1234567891011121314151617181920212223242526272829303132333435363738394041PROCEDURE miprueba()WITH OBJECT TWebPage():New()WITH OBJECT WForm():New(:WO):cFunction := "miAjax":cAjaxBevel := "nflcargo"with object WEdit():New(:WO):cName := "MiEdit":cTitle := "MiValor":Create()end withWITH OBJECT WButton():New(:WO):cId := "submit":cText := "Acceptar":lSubmit := .T.:Create()END WITH //WButton:Create()END WITH //WFormoCgi:SendPage( :Create() )END WITH //WebPageRETURN//------------------------------------------------------------------------------PROCEDURE miAjax()Local cHtmlLocal cDato := oCGI:GetCgiValue("MiEdit","")If cDato == "aaa"cHtml := Tag( "script", "window.location.href = '/@Soft?visparam'" )ElsecHtml := Tag("script", "alert('Dato NO encontrado')" )EndIfoCGI:SendScript( cHtml )RETURNBien, de esta manera está funcionando.
PERO, me muestra en la dirección del navegador http://localhost:8069/@Soft?visparamCosa que no ocurre si por programa tengo un boton que el cOnClick apunta a este enrute
12345WITH OBJECT WButton():New(:WO):cText := "VisParam":cOnClick := "visparam":Create()END WITH //WButton¿Alguna manera de hacer una llamada a un enrute o una página, via script/ajax, sin que me cambie la dirección en el navegador ???
Un Saludo,
Xevi.
- Este debate fue modificado 4 años, 1 mes por Xevi.
-
23-10-2020 a las 00:26 #1362Pedro AmaroSuperadministrador
Hay una función CallAutoForm (que en la próxima versión de Néfele sera nfl_CallAutoForm) que nos crea un script con la llamada a nuestro CGI pasando los parámetros por POST, esta en la lista de funciones del wiki pero aún no esta documentada.
cPage es la función de nuestro CGI o una URL
aParam como todos los aParam de Néfele es {{param1, value1},{param2,value2}....}
cAjaxbevel si la llamada que queremos hacer es por Ajax
lAjaxWaitOn, pues eso que si es por Ajax queremos que ponga una mensaje de espera
cText, texto a poner en el WaitOn
lModal, si va ha producir la apertura de un Bevel Modal
curl, si además de los parámetros que pasaremos por POST queremos pasar algo por GET
lappend, no me acuerdo 😕 ... le tengo que preguntar a Fredy
lShadowSheet, sabana traslucida que se pone delante de la página web para evitar que el usuario interactue con la página durante la llamada
cSSTitle y cSSSubTitle, Titulo y subtitulo que queremos que aparezca en el ShadowSheet, si no ponemos nada utilizara los definidos en tWebPage
lEncript, si queremos que los parámetros se pasen encriptados al estilo Néfele. Ojo, solo para llamadas a CGI de Néfele
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
-
23-10-2020 a las 12:02 #1369Alfredo SanzSuperadministrador
lappend, no me acuerdo 😕 ... le tengo que preguntar a Fredy
Indica si el código retornado por Ajax reemplazará el actual o se añadirá al ya existente 🙂
-
23-10-2020 a las 09:12 #1366XeviParticipante
Pedro,
1234567891011121314151617PROCEDURE miAjax()Local cHtmlLocal cDato := oCGI:GetCgiValue("MiEdit","")oCgi:Console( oCgi:aParams )If cDato == "aaa"* cHtml := Tag( "script", "window.location.href = '/@Soft?visparam'" )* oCGI:SendScript( cHtml )* CallAutoForm( "visparam" ) //No me muestra la página VisParamCallAutoForm( "visparam",, "nflcargo" ) //No me muestra la página VisParamElsecHtml := Tag("script", "alert('Dato NO encontrado')" )oCGI:SendScript( cHtml )EndIfRETURN -
23-10-2020 a las 12:00 #1368Pedro AmaroSuperadministrador
CallAutoForm te retorna la cadena con el script tendrás que hacer oCGI:SendScript( CallAutoForm(" visparam" ) )
-
26-10-2020 a las 20:09 #1415XeviParticipante
Probando CallAutoForm...
123456789101112PROCEDURE ProvaAlertScript()Local cHtmlLocal cDato := oCGI:GetCgiValue("MiEdit","")If cDato == "aaa"cHtml := CallAutoForm( "visparam", {{ "midato", "mivalor" }} )ElsecHtml := Tag("script", "alert('Dato NO encontrado')" )EndIfoCGI:SendScript( cHtml )RETURNVisparam no muestra / no recibe el valor aParam pasado por CallAutoForm
Un Saludo,
Xevi.
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.