Foros Néfele 4 Harbour › Foros › Dudas › oCgi:SendScript()
Etiquetado: Ajax
- Este debate tiene 3 respuestas, 3 mensajes y ha sido actualizado por última vez el 4 años, 2 meses por Alfredo Sanz. This post has been viewed 633 times
-
AutorEntradas
-
-
05-10-2020 a las 10:02 #982XeviParticipante
No logro lanzar un script!!!
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include "Xailer.ch"#include "Nefele.ch"PROCEDURE Prueba()WITH OBJECT TWebPage():New()WITH OBJECT WForm():New(:WO):cFunction := "Prueba2"with object WEdit():New(:WO):cId := "valor1":cTitle := "Valor1":Create()end withWITH OBJECT WButton():New(:WO):cText := "Entrar":lCenter := .T.:lSubmit := .T.:Create()END WITH:Create()END WITHoCgi:SendPage( :Create() )END WITHRETURN//------------------------------------------------------------------------------PROCEDURE Prueba2()oCgi:Console( oCgi:aParams )oCgi:Console( "valor1 = " + oCGI:GetCgiValue("valor1") )If oCGI:GetCgiValue("valor1") == "aaa"miotraventanaSI() //Ahí se va cuando valor1 == "aaa" correctamente!!!Else//He probado esas 3 opciones... todas, no lanzan el script, solo lo muestran en ventana nueva* oCgi:SendScript( "Alert('NONONONO' )" )* oCgi:SendScript( "#Alert('NONONONO' )" )oCgi:SendScript( "<script>Alert('NONONONO' )</script>" )EndIfRETURNPero lo único que hace es mostrar el script como texto en el navegador.
Que estoy haciendo mal???
Un Saludo,
Xevi.
- Este debate fue modificado 4 años, 2 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 2 meses por Alfredo Sanz.
-
05-10-2020 a las 11:19 #984Alfredo SanzSuperadministrador
Tienes que hacer la llamada por ajax con :cAjaxBevel := "nflcargo" dentro del form.
Ten en cuenta que si no es por ajax, néfele hace lo que tiene que hacer:
1 - muestra la página web generada con prueba()
2 - termina el script y lo libera de memoria
3 - envía el resultado al servidor y lo recibe el navegador del cliente
4 - al hacer click en enviar formulario:
5 - inicia una nueva ejecución del script
6 - crea una nueva página web con el contenido generado en prueba2()
7 - termina ejecución y lo muestrapor eso solo ves el alert, el resto era de la página web anterior.
En cambio, si lo haces por ajas, el contenido de prueba2() te lo "inyectará" en la página que estás viendo ( esto es, prueba())
Por último, nflcargo es un <div> que siempre está presente en las páginas generadas con néfele. Está oculto y sirve principalmente para poder recibir script generados por ajax que de otra forma no sabríamos dónde meter.
-
05-10-2020 a las 12:20 #986XeviParticipante
No se como hacerlo...
En mod_harbour, con un script (proceso de loguearse)
12345678910111213141516171819202122232425<script>$('#btn_login' ).click( Validate )function Validate() {var o = new Object()o[ 'action' ] = 'login'o[ 'user' ] = $( '#user' ).val()o[ 'psw' ] = $( '#psw' ).val()$.post( '/@Soft/autenticate', o ).done( function( data ) {if ( data.success )window.location.href = '/@Soft/'elsealert( 'Error autenticate' )})}$("input").keyup(function(event) {if (event.keyCode === 13) { Validate();}});</script>De ahí la inquietud de hacerlo con un script.
Miraré algun ejemplo de Ajax, a ver si aprendo un poco!!!
Un Saludo,
Xevi.
-
15-10-2020 a las 11:45 #1224Alfredo SanzSuperadministrador
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.