Ajax y php 2 parte

0

Por admin | Para la categoría de Ajax, php | noticia del 13-07-2009

Código del fichero javascript validacion.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
// JavaScript Document
 
window.onload=function ()
{
  document.forms[0].onsubmit=recogerFormulario;
  var selector=document.forms[0];
  selector.estilo.onchange=establecerEstilo;	 
 
 
}
 
// Definimos un constructor para los datos del formulario para quedar almacenados y trabajar con ellos
function formulario (deporte,color,correo)
{
   //propiedad deporte de la clase
   this.deporte=deporte;
   this.color=color;
   this.correo=correo;
   this.valido=false;
   this.mensaje="";
   //asignar la propiedad de un objeto a una funcion externa 
   this.validar=validar;
}
 
 
function recogerFormulario()
{ 
  //le pasamos los datos a las correspondientes funcion de comprobacion pasandole el nombre etc gracias al this del formulario 
 
   chequeoCampos(this.deporte.value,this.color.value,this.correo.value);
  // return false;
}
 
 
function validar(registro) 
{ 
 
 
	 //primero comprobamos que los campos del formulario no estan vacios 
	 //variable local que indica si todos los campos estan completos
	 var completo=true;
	 var direccion=true;
 
 
	 if ( this.deporte==null || this.deporte.length==0 )
	    {  completo=false; }
 
	 if ( this.color==null || this.color.length==0)
	 	{   completo=false; }
 
	 if ( this.correo==null || this.correo.length==0)
	 	{ completo=false; }
 
     if (this.correo.indexOf(".") == -1 || this.correo.indexOf("@") ==-1 || this.correo.indexOf(" ")!=-1)
	 {
		direccion=false; 
	 }
 
	if ((completo==true) && (direccion==true))
	{ this.valido=true; }
 
 
	descodificarMensaje(completo,direccion);	 
 
 
}
 
 
function descodificarMensaje(completo,direccion)
{
  var texto="";
  if (completo==false)
  {  texto="hay campos sin completar"; }
  else
  {
  if (direccion==false)
  {  texto="la direccion de correo no es correcta"; }
 
  }
 
  mensaje(texto,"red");
} 
 
 
//funcion encargada de mostrar el mensaje por pantalla en un determinado color
 
function limpiar()
{
  var formulario=document.forms[0];
 
  formulario.deporte.value="";
  formulario.color.value="";
  formulario.correo.value="";
 
}
 
function mensaje(texto,colores)
{ 
   //accedemos a la capa mensaje para escribir el codigo correspondiente
   var msj=document.getElementById("mensaje");
 
 
   //si no hay mensaje de error todo esta bien limpiamos los campos y si tenemos un mensaje anterior lo limpiamos
   if (texto=="")
   { limpiar();
       if (msj.hasChildNodes()) //si tienes nodos hijos
       {
	     msj.removeChild(msj.firstChild);
 
       }
 
   }
 
   //en caso contrario cogemos y escribimos el mensaje correspondiente y en el color correpondiente
   else
   {  
 
 
   //determinamos las propiedades de estilo
   msj.style.color=colores;
   msj.style.fontSize="0.9em";
 
   //eliminamos los mensajes antiguos que tuviese esa capa anteriormente
   if (msj.hasChildNodes()) //si tienes nodos hijos
   {
	  msj.removeChild(msj.firstChild);
 
   }
 
   //creamos el nuevo
   msj.appendChild(document.createTextNode(texto));
   }
 
 
}
 
 
function crearCadenaConsulta (deporte,color,correo)
{
 
 var cadenaConsulta="";
 
 cadenaConsulta="deporte="+deporte+"&"+"color="+color+"&"+"correo="+correo;
 
 
 return cadenaConsulta;  
 
 
}
 
 
 
 
function chequeoCampos(valordeporte,valorcolor,valorCorreo)
{   
 
	//creamos un objeto de la clase formulario
	var cadenaConsulta;
 
	var registro=new formulario(valordeporte,valorcolor,valorCorreo);
 
	//direccion de la url a donde va la peticion
	var url;
 
	//validate se convierte en la propiedad de 
	registro.validar();
 
 
	//si el registro es valido pasamos a crear la cadena de consulta 
	if (registro.valido==true)
	{
	  cadenaConsulta=crearCadenaConsulta(registro.deporte,registro.color,registro.correo);
 
	  peticion(cadenaConsulta);
	}
 
 
 
}
 
 
function peticion (cadenaConsulta)
{  
   //la direccion url donde ubicammos el fichero php
   var url="respuesta.php";
 
   if (window.XMLHttpRequest)
   {
 
	 http_request=new XMLHttpRequest();
 
   }
 
   else
   {
	  if (window.ActiveXObject)
	  {
 
		  http_request=new ActiveXObject("Microsoft.XMLHTTP");
 
		  if (!http_request)
		  {
			  http_request=new ActiveXObject("Msxml2.XMLHTTP");
		  }
	   }
    }
 
 
	try
	{
	http_request.onreadystatechange=muestraContenido;
	http_request.open("POST",url,true);
 
	//configuracion de la cabecera de una aplicacion post content type
	http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	http_request.send(cadenaConsulta);
	}
 
	catch (err)
	{
		alert("espera unos segundo y vuelve a intentar conectar el servidor");
	} 
 
 
}
 
 
function muestraContenido ()
{    
 
	 if (http_request.readyState== 4 )
	 {  
	     alert("peticion completa");
 
		 if (http_request.status==200)
		 {   
			var respuesta=http_request.responseText;
		    alert(respuesta);
			var obj=eval("("+respuesta+")");
 
			devolverDatos(obj);
 
		 }
 
	 	 else
	 	 {
          alert("problema con la comunicacion con el servidor");
	 	 }
	 } 
 
}
 
 
function devolverDatos (obj)
{
	//mandamos los datos del servidor a la pagina del formulario a la capa de datos
	var capaDatos=document.getElementById("datos");
 
	//creamos la cadena a mostrar
 
    var info="<h4> Los datos del proceso de inscripción son:<h4>";
 
	info+="<br/>deporte: "+obj["deporte"]+"<br/>color: "+obj["color"]+"<br/>correo: "+obj["correo"]+"<br/>";
 
	//limpiamos si hay texto dinamico html
 
	capaDatos.innerHTML="";
 
	//damos formato
 
	capaDatos.style.backgroundColor="#99CC00";
	capaDatos.style.color="#FFFFFF";
	capaDatos.style.width="80%";
	capaDatos.style.border="thin solid black";
	capaDatos.style.padding="0.5em";	
	capaDatos.innerHTML=info;
 
}
 
 
function establecerEstilo ()
{
   var estilo=this.value;
   var capaDatos=document.getElementById("datos");
 
 
 
   switch (estilo) 
   {
	  case 'verde':
	  capaDatos.style.backgroundColor="#99CC00";
	  capaDatos.style.color="#FFFFFF";
	  capaDatos.style.width="80%";
	  capaDatos.style.border="thin solid black";
	  capaDatos.style.padding="0.5em";
	  break;
 
 
	  case 'azul':
	  capaDatos.style.backgroundColor="#0099FF";
	  capaDatos.style.color="#FFFFFF";
	  capaDatos.style.width="80%";
	  capaDatos.style.border="thin solid red";
	  capaDatos.style.padding="0.5em";
	  break;
 
	  case 'rosa':
	  capaDatos.style.backgroundColor="#FF33FF";
	  capaDatos.style.color="#FFFFFF";
	  capaDatos.style.width="80%";
	  capaDatos.style.border="thin solid green";
	  capaDatos.style.padding="0.5em";
	  break;
 
	  case 'cosmopolita':
	  capaDatos.style.backgroundColor="#6633CC";
	  capaDatos.style.color="#FFFFFF";
	  capaDatos.style.maxWidth="80%";
	  capaDatos.style.border="thin solid yellow";
	  capaDatos.style.padding="0.5em";
	  break;
 
   }
}

Enlace “link” a siguiente post Enlace Ajax 3 parte FINAL DEL EJEMPLO “finish”

Comentarios cerrados automáticamente al pasar más de un año