Correcció PAC 1 de l'assignatura Programació Web, del Grau Multimèdia de la UOC. Us podeu baixar els arxius HTML i JS en la meva wiki Racó Vermell: http://raco-vermell.wikispaces.com/PROGRAMACI%C3%93+WEB
1. La proposta de solució recull 4 exemples de com es podia desenvolupar la PAC. Segons
el model de dades decidit (estructura d'emmagatzemament de les compres) cada
pregunta requeria un codi concret.
• Opció 1. Array multidimensional gentilesa de la Isabel Simó. Aquesta opció l'he
modificat lleugerament per fer el codi més eficient i documentar-la al màxim segons
la proposta de Sun. Diria que és la que heu de seguir si heu tingut problemes en el
desenvolupament de la PAC i voleu un exemple de referència
• Opció 2. Array encadenant la compra en un string gentilesa de la Núria Escudé.
Potser la versió més senzilla a l'hora de recollir les dades, però que complica més
les cerques. Per fer-ho caldrà accedir a "Marca", "Brand" per la Núria, que està al
mig de la cadena. El mètode split de l'objecte String facilita molt la feina. Alguns de
vosaltres heu tirat pel dret i no heu tingut en compte on calia cercar la marca. En el
cas d'ordenar és molt senzill, ordenant la cadena de compres ordenem per
producte i ja està. Una altra cosa seria poder ordenar per marca o unitats, però per
sort no calia
• Opció 3. Es treballa amb 3 arrays gentilesa del Guillem Riera, i de pas he posat
aquest exemple perquè utilitza un formulari i us ajudarà als que no sapigueu com
accedir a la informació d'aquests camps des de javascript. La cerca està feta amb
expressions regulars, punt també interessant – alerta Núria els teus patterns i if han
estat una mica modificats-
• Opció 4. Array 3 posicions consecutives gentilesa del Lluís Canela. Segurament és
la pitjor de les opcions, no tant perquè es complica el codi, sinó perquè
conceptualment barregem pomes amb peres sense estructurar les dades
correctament. Però és una opció factible i aquí està la solució. A l'hora de cercar, si
tenim en compte que a la posició 1 de les compres hi ha la marca i a la 4 la
següent i a la 7 la següent... cal incrementar el comptador de l'array de compres en
3 cada vegada. Això molts no ho heu fet provocant que es cerquéssim marques,
productes – i si era un número unitats – com a coincidents. És important destacar
com el Lluís ha solucionat el problema de l'ordre de les majúscules i minúscules a
partir del mètode sort. També la forma com ha creat una taula auxiliar per facilitar-li
la posterior ordenació (si entreu dades feu primer un llistar)
A partir d'ara imagineu que soc un usuari que vol comprar la vostra pàgina i comentaré
que he observat als exercicis i que m'hagués agradat trobar. Tot el que diré alguns de
vosaltres ho han fet perfectament, però en pocs casos ho heu inclòs tot.
2. 1.- Afegir-hi un botó que llenci un bucle per llegir des del teclat la llista de la compra producte,
marca i unitats (format: producte, marca, unitats) i desar-los en un array ( array unidimensional
que contingui la concatenació de producte, marca, unitats). Finalitzar quan hi hagi una entrada en
qualsevol dels camps que sigui FI.
Quan començo a comprar jo no recordo com he d'acabar, intento fer escape, enter, deixar
un valor buit i no aconsegueixo acabar, tampoc tinc un botó final i em desespero. Posar
als alerts un text que digui escriure FI per acabar s'agraeix.
També s'agraeix que la pàgina m'ajudi, em permeti acabar amb FI o fi o Fi. També que si
compro un producte buit no em deixi continuar.
Quan entro FI vull acabar, no m'agrada que m'obliguin a entrar una marca i unes unitats. I
si no ho faig la pàgina s'enfada i no puc fer res!
2.- Afegir a l'apartat anterior una funció de validació de la informació introduïda: que no s’acceptin
productes i marques que continguin caràcters especials (&%$?¿!¡¨ _) i assegurar-se de que les
unitats continguin un valor numèric enter.
Aquí no hi tinc res a dir com a usuari. Només en un cas al validar hi trobar un caràcter
invàlid m'ha expulsat de la compra. Hauríem de facilitar la feina als nostres clients!
Com a programador m'agradaria que afegir o treure caràcters prohibits sigui tan senzill
com fe-ho a un allista i que no hagi de tocar codi, comptadors, parèntesis, if's i no se
quantes coses més
3.- A la pàgina anterior inserir un botó “mostrar” que permeti fer un llistat de les dades en format
taula en una nova pàgina (el codi que obri la nova pàgina s’explicarà al fòrum).
M'ajuda molt saber que se m'està mostrant a cada columna, com a comprador no sé que
deia l'enunciat de la PAC i no puc saber exactament que hi ha a cada columna del llistat.
També em facilita molt veure clarament que tenim 3 columnes i que el llistat no vagi fent
"esses" per la pantalla
4.- A la pàgina anterior afegir un botó que permeti cercar una marca de la llista i mostri tots els
registres que compleixen la condició. Per visualitzar el resultat utilitzeu un alert.
Quan faig una cerca i se m'obre una finestra o apareix un alert que em tapa la pantalla,
perdo la referència de la marca cercada, no estaria de més veure-la a la finestra resultat. I
afegiria el mateix que al punt anterior
5.- Afegir un nou botó que ordeni la llista de productes i els mostri, en format taula ordenada, en
una pàgina nova.
Repetiria el que he dit al punt 3
3. 6.- Com que l'opció 5 ens desordena l'estat inicial de la llista, afegir un botó que permeti recuperar-
lo. Quines opcions s'us plantegen i quina seria més optima?
En molt pocs casos hi ha hagut problemes
7.- Exportar el codi javascript de la pàgina a un arxiu .js extern i vincular-lo a la pàgina web.
Sempre correcte
8.- Documentar el codi segons la solució proposada als temes de debat.
Moltes vegades els exercicis no estaven documentat segons la proposta. En pocs ni s'hi
assemblava i no costava res fer-ho.