ventajas tutorial que español ejemplos desventajas descargar coldfusion

tutorial - ¿Puedo usar etiquetas de ColdFusion en JavaScript?



coldfusion ventajas y desventajas (1)

¿Puedo usar etiquetas de ColdFusion en JavaScript? Por ejemplo:

<script language="javascript" type="text/javascript"> function validateUser() { var userName = document.getElementById("username"); <CFQUERY DATASOURCE="mydatasourcename" NAME="getUser"> select USER_ID,COUNT(*) from user u where u.firstname=userName; </CFQUERY> <cfif getUser.recordCount EQ 0> <!--- Show eroor message ---> <cfelse> <!--- Assign userId to hidden field ---> document.getElementById("userid").value=#USER_ID# </cfif> } </script> <input type=''textbox'' name=''username'' id=''username'' onblur=validateUser()/> <input type=''hidden'' name=''userid'' id=''userid''/>

Cuando el usuario final ingresa su nombre de usuario, me gustaría verificar en una base de datos si este nombre de usuario existe o no. Si existe, tengo que mantener el ID de usuario en el campo oculto o bien arrojar un error.

¿Estoy haciendo esto correctamente? Si está mal, ¿podrías sugerir la forma correcta?


Versión larga: http://blog.adamcameron.me/2012/10/the-coldfusion-requestresponse-process.html

Versión corta: no, no lo estás haciendo bien.

Versión mediana compatible con : el código CFML se ejecuta en el lado del servidor de una solicitud; JavaScript se ejecuta en el navegador del cliente. Y para ser claros: el servidor ColdFusion nunca se comunica directamente con el navegador: hay un servidor web entre ellos. El navegador del cliente solicita un archivo, el servidor web está configurado para pasar solicitudes .cfm al servidor de ColdFusion, y ejecuta su código, devolviendo la cadena resultante (por ej .: una página web HTML) al servidor web que luego lo devuelve al navegador. Ese HTML podría incluir JavaScript (en línea o como solicitudes externas) que luego el navegador ejecutará.

Con suerte, puede ver que no hay interacción directa entre el código del lado del servidor y el código del lado del cliente.

Tienes dos instalaciones a tu disposición para que las dos se comuniquen de forma asíncrona. En primer lugar: el código CFML escribe texto, pero ese texto puede ser JS, que luego el navegador ejecuta cuando finalmente lo recibe. Algo como:

<cfset msg ="G''day world"> <script>alert("<cfoutput>#msg#</cfoutput>");</script>

Una vez que el servidor CFML ha procesado eso, lo que se devuelve al navegador es:

<script>alert("G''day world");</script>

De esta forma, los datos del código del lado del servidor se pueden usar en el proceso del lado del cliente si el código del lado del servidor "escribe" los datos como parte de su respuesta. El ejemplo anterior es muy trivial y no es una forma de "buena práctica" de abordar esto, pero demuestra la técnica.

Si necesita utilizar el código JS en el cliente para comunicarse con el servidor, su único (real) recurso es hacer una solicitud AJAX al servidor para pasar la información del lado del cliente para un procesamiento adicional del lado del servidor y para el servidor para responder con algo Está fuera del alcance de su pregunta explicar la mejor manera de hacerlo, pero hay una tonelada de información para hacer esto.

CFML ofrece algunos "asistentes" para escribir HTML y JS a fin de facilitar esto, pero en general este es un mal enfoque para lograr este fin, por lo que no lo recomendaré. Sin embargo, le indicaré un proyecto que ofrece soluciones HTML / JS / CSS para la hechicería CFML incorporada: https://github.com/cfjedimaster/ColdFusion-UI-the-Right-Way

Volver a la respuesta corta: no, no puede hacer lo que se propone hacer por muy buenas razones, pero si revisa su enfoque, puede lograr los fines que desee.

Lo que necesita observar es pasar los campos de formulario al servidor a través de AJAX (jQuery lo hace muy fácil) y ejecutar su código <cfquery> en una solicitud por separado.

Si lees ese artículo del blog que menciono desde el principio (discloure: lo escribí, pero lo escribí específicamente para situaciones como esta), entonces entenderás por qué.

Si te quedas atascado al trabajar con parte de tu solución: formula otra pregunta más centrada en la parte en la que estás atascado.