sábado, 30 de mayo de 2009

Taller2: Bloque T2.11

1. Realiza una quiniela AJAX, que al modificar el resultado de un partido lo almacene en el servidor

En primer lugar creamos el documento html donde se introduciran los equipos así como el resultado del partido.
Luego creo el cliente en Javascript que llama al servidor con una interfaz REST.

El servidor escrito en ruby toma el documento quiniela.xml de y lo va actualizando:


#!/usr/bin/ruby
require 'rexml/document'
require 'cgi'
include REXML

#Cabecera, poner siempre
print "Content-Type: application/xhtml+xml\n\n"

cgi = CGI.new()

#Recojo los parámetros que le paso por la interfaz res
nPartido=cgi['nPartido']
resultado=cgi['resultado']
local=cgi['local']
visitante=cgi['visitante']


# Comprobamos que se han rellenado todas las casillas
if((nPartido=="" || resultado=="" || local =="" || visitante==""))
print "Te falta algun dato por introducir \n\n "
nPartido=-1;
end

# Construimos documento XML
file = File.new('./quiniela.xml','r')
doc = Document.new(file)

# Guardamos el nuevo documento XML con las modificaciones efectuadas
file = File.new('./quiniela.xml','w')
file.print <<"EOF"
EOF
print <<"EOF"
EOF

#Comenzamos a escribir nuestro fichero
file.print ""

#Buscamos todos los partidos
i = 0;
doc.root.each_element('partido') { |p|

#if(p.attributes['equipoLocal']==local.to_s && p.attributes['equipoVisitante']==visitante.to_s)
#Si ya estaba en la quiniela cambio solo el resultado
#p.attributes['resultado']=resultado

#Si coincide con el numero de partido y el resultado es correcto
if(i==nPartido.to_i && (resultado.to_i=='1' ||resultado.to_i=='2' ||resultado.to_i=='x' ||resultado.to_i=='X'))

#Sobreescribimos el partido
#En caso contrario se deja tal y como esta
p.attributes['resultado']=resultado
p.attributes['equipoVisitante']=visitante
p.attributes['equipoLocal']=local
end

#Escribimos todos los partidos
file.print p,"\n"
print p,"\n"
i+=1
}
file.print""
file.print ""
print ""

No hay comentarios: