velneo jquery y php

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Avatar de Usuario
Xferic.com
vRookie
vRookie
Mensajes: 11
Registrado: 17 Dic 2010, 23:42

velneo jquery y php

Mensaje por Xferic.com »

Hola compañeros,

Estoy montando un formulario en una pagina web que conecta con el servidor de velneo.

El funcionamiento es el siguiente, valido los campos con jquery validate, y si pasa la validación llamo desde jquery a un script en php y le paso las varialbles.

El script php llama un proceso del servidor ( hasta aqui todo correcto), mi problema y creo que ya estoy bloqueado es que no consigo pasar las variables desde php al servidor.

si lo hago de una forma manual si me funciona ( http:\\localhost\cgi-bin\miaplicacion\proceso.pro?variable1=hola&variable2=rehola....) pero no consigo la estructura con las variables declarada.

Recibo bien los datos del servidor, pero otro problema es que no consigo que cuando se produzca un error, (por ejemplo usuario existente...) pasarle la variable a php para que retorne false a jquery.

He buscado información en el foro pero no me aclaro incluso existe un post de Felipe Gomez que trata este tema (http://forum.velneo.com/es/viewtopic.ph ... light=ajax) pero el link de descarga del ejemplo esta caido.

No se si alguien que utilice php y velneo me puede orientar.

Gracias de antemano.
Avatar de Usuario
Xferic.com
vRookie
vRookie
Mensajes: 11
Registrado: 17 Dic 2010, 23:42

Mensaje por Xferic.com »

me respondo yo mismo,

el envio de las variables de php a velneo ya lo tengo, efectivamente estaba bloqueado y no la estaba declarando correctamente,

La respuesta desde velneo funcionando,

lo único que me falta es que cuando el registro a comprobar ya exista devolver false de php a jquery y que lo trate como error: function().

En cuanto lo consiga subo todos los pasos por si alguien alguna vez se encuentra con el mismo problema,
Avatar de Usuario
weekend
vAdviser
vAdviser
Mensajes: 487
Registrado: 03 Nov 2007, 12:24

Mensaje por weekend »

Buenas
Seria de agradecer ya que yo estoy interesado en unir php y velneo

Muchas gracias
Saludos

El hardware es lo que puedes patear, y el software, lo que puedes maldecir.
weekend40@gmail.com
Avatar de Usuario
Xferic.com
vRookie
vRookie
Mensajes: 11
Registrado: 17 Dic 2010, 23:42

Mensaje por Xferic.com »

Lo prometido es deuda, aquí van los paso que he seguido para unir jquery php y velneo.

Primero creamos un formulario con los inputs correspondientes, creamos un script para poner nuestras propias reglas a jquery validate

<script id="demo" type="text/javascript">
$(document).ready(function() {
var validator = $("#CommentForm").validate({

declaramos nuestras reglas.

rules:(
'#ContactName':{required: true, minlength: 3},
..........

declaramos nuestros mensajes personalizados.
messages:{
'ContactName':{required:'<br/>Debe ingresar el nombre<br/>',
............................
si la validación es correcta ejecutamos el envío del formulario

submitHandler:function(){

$.ajax({
cache: false,
type: 'POST',
data: ($("#CommentForm").serialize()) ,
dataType:"html",
url: 'conector.php',
.....................

para darle vistosidad a nuestro formulario modificaremos los dom a nuestro gusto

yo primero he utilizado la funcion

beforeSend: function(){

aquí presento el típico ajax-loader con algún texto.

si obtenemos respuesta del servidor uso

success: function(data){

y modifico los div en función de la respuesta.

Si se produce error utilizo

error: function(data){
y tambien modifico en funcion de la respuesta.

Con todo esto hemos validado nuestro formulario según nuestras reglas, hemos puesto un loader mientras se envía el formulario y hemos cambiado el contenido de los div en función de la respuesta.

Ahora veamos el funcionamiento del fichero conector php.

Al utilizar la función serialize no hemos ahorrado el tener que pasar cada uno de los campos del formulario, pero al recibirlos en php, solo he encontrado la opción de declarar las variables pasadas por serialize.

<?php

// recibimos variables
$ContactName = $_POST['ContactName'];
.........
y así con cada una de ellas

creo una variable con la dirección del servidor de velneo

$servicio_web = "http://localhost:8080/cgi-vel/miaplicac ... roceso.pro";

Creo la estructura de la cadena en otra variable.

$URL_consulta_API = $servicio_web . "?CONTACTNAME=" . $ContactName . "&CONTACTEMAIL=" . $ContactEmail . "&CONTACTPHONE=" . $ContactPhone. "&CONTACTCOMMENT=" . $ContactComment ;

// lanzamos la consulta
$Result= file_get_contents($URL_consulta_API);

en el proceso trabajamos los dato a nuestro gusto y devolvemos los valores que necesitemos.

solo nos queda una vez que recibimos los datos utilizar la funcion json_encode

$dato_json=json_encode($Result);

Devolvemos el valor a script de jquery
echo $dato_json;
?>

Dentro de jquery tratamos los datos

success: function(data){
var json = eval("(" + data + ")")
if (json.a == 2 )
lo que necesitemos.



Saludos

Ni decir tiene que tendremos que declarar en nuestra pagina
jquery.js
jquery.validate.js
filipeagg
vAdviser
vAdviser
Mensajes: 485
Registrado: 02 May 2008, 17:49

Mensaje por filipeagg »

Hace tiempo escribi un articulo de como conectar php con v7, pero se aplica de igual forma a v6.

Mirarlo y puede ser que les dé algunas ideas para automatización del código.

http://blog.digitalsoftlab.com/2011/12/ ... -parte-ii/
http://blog.digitalsoftlab.com/2011/12/ ... parte-iii/
Filipe Gomes
Programador y consultor SEO
Avatar de Usuario
Xferic.com
vRookie
vRookie
Mensajes: 11
Registrado: 17 Dic 2010, 23:42

Mensaje por Xferic.com »

Esto me pasa por no buscar bien, me hubiera ahorrado mucho tiempo, pero nunca es tarde.
Hay algunos puntos que me pueden simplificar la tarea, voy a modificar algunas cosas aplicando tu ejemplo.

Magnifica explicación

Muchas gracias Felipe, eres un crack
Avatar de Usuario
Xferic.com
vRookie
vRookie
Mensajes: 11
Registrado: 17 Dic 2010, 23:42

Mensaje por Xferic.com »

Hola Felipe y compañía

He revisado a fondo los enlaces que enviaste y vuelvo a decir es espectacular lo que se puede hacer.

La automatización para el envío de las variables ahorra mucho trabajo y tiempo.

Con el envío por tcp he visto que abre mayores posibilidades y me he puesto a probar

Dudas, siempre surgen,

consigo comunicar por tpc con el vserver pero no veo lo que recibo.

probé directamente con la plantilla de vpost y nada.

he probado algo simple como protocolo tcp recibir linea, y tampoco.
No se si se debe a la codificación json o a otra cosa. tienes alguna idea de como realizar la lectura de json en velneo 6x.

Saludos
filipeagg
vAdviser
vAdviser
Mensajes: 485
Registrado: 02 May 2008, 17:49

Mensaje por filipeagg »

Comunicar por tcp con v6, si puede hacer, pero si bien que los olvidamos de algunos problemas con el vserver, nuevos problemas se levantan.

Yo tengo un par de webs que se comunican por tcp/ip con velneo v6, pero antes que empiezes debes saber algunas condicionantes:

1- El protocolo tcp dependiendo del operador y del equipo y sistema operativo tiene limite de datos a enviar y recibir. Si quieres algo estable debes programar por ejemplo que se envien paquetes de 1024 bytes.

2- Yo uso el TCP/IP en un cliente del vserver, pero en este caso no puedes usar las variables globales, pues estas en caso de conexiones simultaneas mesclan los valores entre sesiones.

Por lo demás todo funciona correctamente.

Para el parseo de JSON en v6 en creado un par de funciones de v6, que parsean la cadena json devolviendo la variable solicitada, y el rendimiento es bastante bueno.
Filipe Gomes
Programador y consultor SEO
Avatar de Usuario
Xferic.com
vRookie
vRookie
Mensajes: 11
Registrado: 17 Dic 2010, 23:42

Mensaje por Xferic.com »

Gracias Felipe,

El tema de las variables globales ya lo había pensado y lo tengo solucionado, (creo) las declaro como variables locales en php y las envío.

El envío de paquetes de 1024 no lo tenía contemplado, lo tengo que mirar, la verdad no se me paso ni por la cabeza.

El parseo de json lo estoy me voy a poner ahora con ello, pero no tengo la idea muy clara de como hacerlo, sera cuestión de investigar.

Aunque sigo intentando comunicar php por tcp me surge una gran duda, cual es la ventaja real de usar tcp en lugar de atacar directamente a un proceso.??

Que tipo de limitación tiene el uso de llamar a un proceso??

gracias por todo.
filipeagg
vAdviser
vAdviser
Mensajes: 485
Registrado: 02 May 2008, 17:49

Mensaje por filipeagg »

La unica ventaja real, es usar tcp contra un vclient, contra el servidor tampoco le veo gran ventaja.

Si la web se conecta a un puerto aberto en un vclient el proceso no se ejecuta en el servidor, por lo tanto evitas posibles caídas de este.

Pero si es una aplicación donde se conectan relativamente pocos usuarios, no compensa conectarte a un cliente, es mejor usar un proceso web en servidor.
Filipe Gomes
Programador y consultor SEO
Responder