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, 4 meses por
Alfredo Sanz. This post has been viewed 679 times
-
AutorEntradas
-
-
05-10-2020 a las 10:02 #982
Xevi
ParticipanteNo 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, 4 meses por
Alfredo Sanz.
-
Este debate fue modificado 4 años, 4 meses por
Alfredo Sanz.
-
Este debate fue modificado 4 años, 4 meses por
-
05-10-2020 a las 11:19 #984
Alfredo Sanz
SuperadministradorTienes 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 #986
Xevi
ParticipanteNo 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 #1224
Alfredo Sanz
Superadministrador
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.