En Miquel Angel

Tercer capítol de la trilogia de les meves desventures per Calvia 2000

enmiquelangel | 08 Juny, 2007 23:05

Ja que no em trobava bé fent feina a Calvià i gràcies a que vaig trobar feina a unaltre lloc, ón per cert, les coses són bastant distintes, vaig demanar una excedència especial a la que segons el conveni que té Calvia 2000, jo hi tenia dret, perque feia més de 5 anys que hi feia feina.  La diferència entre una excedència "normal" i una "especial" és que, mentre a la normal si tu vols tornar a l'empresa has d'esperar a que hi hagi una plaza vacant, a la especial, l'empresa está obligada a reincorporar-te a la plantilla, si tu vols.

 (Segueix)

Segon capítol de la trilogia de les meves desventures per Calvià 2000

enmiquelangel | 06 Juny, 2007 11:40

Si heu llegit el post anterior d'aquesta categoria i heu quedat amp els cabells drets, no vos podeu perdre el que relataré a continuació:

Vaig entrar a fer feina a Calvià 2000 com a controlador de planta. Un controlador de planta és l'encarregat de detectar fallades a les plantes de depuració i donar avís a les diferents seccions per a que resolguin els problemes. A part d'això també s'encarrega de rebre les cridades telefòniques dels usuaris del terme municipal tant per problemes amb l'aigua potable com per aigües brutes. Sempre hi ha un controlador a la sala de control perque fan torns rotatius les 24 hores del dia, set dies a la setmana i 365 dies a l'any.  Això vol dir que per a un controlador de planta et pot tocar fer feina a la nit, en festiu o en cap de setmana.

Jo hi vaig estar quasi un any com a controlador, però el meu superior, que en aquells moments era en Joan Calafat, va donar-me l'oportunitat de canviar el meu lloc de feina per un a les oficines amb horari de vuit a tres de l'horabaixa i de dilluns a divendres.  Evidentment tot d'una vaig dir que sí. 

 (Segueix)

Inici de les meves desventures per Calvia 2000 (saps que ho era de jove i de colló...)

enmiquelangel | 16 Maig, 2007 19:42

Ja fa més de 7 anys que vaig començar a fer feina a Calvia 2000.  En aquell temps na Nàjera era la batlesa de Calvià i les coses eren bastant diferents d'ara.

Emperò hi hagi un partit polític a l'Ajuntament o un altre, no deixa que certs personatges amb un poder relatiu facin amb els treballadors els que més els hi convé, sense mirar si les seves accions perjudiquen o no a qualque persona.

Cal afegir, que una vegada el PP entràs a l'Ajuntament de Calvià, aquests petits "caciques" van absorbir un poder encara més gros.
 

 (Segueix)

AJAX i PHP

enmiquelangel | 05 Febrer, 2007 13:47

Fa poc que he començat a fer les meves cosets amb AJAX, JavaScript asincrònic i XML (Asynchronous JavaScript XML en anglès), malgrat ja fa un temps que empro el PHP. L'altre dia m'hi vaig possar i sa veritat es que una vegada descobert, i això que encara segur que no estic ni al 1% del meu camí, et facilita molt les coses a l'hora de programar webs dinàmiques.  Per altra banda, el codi queda molt més net ja que cada cosa està al seu lloc i no tot entremesclat que és com em quedava fins ara si només emprava el PHP.

L'avantatge més gran que hi veig, és que les pàgines no s'han de recarregar cada vegada, cosa que fa que el nombre de comprovacions i de dades enviades ja sigui mitjançant GET o POST sigui molt més baixa.  Però no m'enrollo més, a continuació teniu un tutorial de com fer una pàgina simple que ataca a una BD MySQL i pinta les dades amb AJAX:

En aquest cas es consulten les dades d'una taula anomenada "AGENDA" amb els següents camps: CODI, NOM, LLINATGES, TELEFON, MAIL, TIPUS, tots els camps són del tipus VARCHAR exceptuant el camp CODI que és un INT amb AUTO_INCREMENT i per tant clau primària de la taula.

Unaltra punt a tenir en compte és que farem servir el PHP per a accedir a les dades de la BD i generar un XML que llegirem i pintarem amb el JavaScript. A això se la denomina programació per capes i en concret, en aquest cas n'hi ha 3: la capa de dades, la capa de negoci i la capa de presentació.

La primera és la de nivell més baix i fa referència a les dades que es troben a la base de dades.

La capa de negoci és la que s'encarrega de consultar aquestes dades i de generar un XML, en aquest cas ho faig amb PHP, però es pot utilitzar cualsevol llenguatge, com per exemple JAVA, ASP, etc...

La darrera capa (presentació) és la que es programa amb javascript i és l'encarregada de pintar les dades que es reben a l'XML.

El primer, i dò que farem serà crear un fitxer PHP amb el següent codi: 

<?
$tipus=$_GET('tipus');

//Substituir servidor, usuari, password i nom_de_la_BD per les dades que corresponguin
$link=mysql_connect ("servidor", "usuari", "password") or die ('Impossible conectar amb la BD' . mysql_error());
mysql_select_db("nom_de_la_BD");
$sql="SELECT * FROM AGENDA";

if ((isset($_GET( 'tipus')) || ($tipus!='')) {
    $sql=$sql." WHERE TIPUS='".$tipus."';
}

$result=mysql_query($sql,$link);

if ($result) {
    header( "Content-type: text/xml");
    echo "<?xml version="1.0" encoding="ISO-8859-1"?>n";
    echo "<contactes>n";

    while ($row=mysql_fetch_array($result)) {
        echo "<contacte codi="".$row['CODI']."" nom="".$row['NOM']."" llinatges="".$row['LLINATGES']."" telefon="".$row['TELEFON']."" mail="".$row['MAIL']."" tipus="".$row['TIPUS'].""/>n";
    }
    echo "</contactes>";
} else {
    echo "Error de SQL<br>".$sql;
}
mysql_free_result($result);
?>

Aquest fitxer s'encarrega de generar l'XML que llegirem amb JavaScript a la capa de presentació. En el meu cas l'he anomenat agenda.php.

La primera línia ens serveix per desar a la variable $tipus si hem de fer algún filtratge sobre les dades.  El camp TIPUS serveix per saber si els contactes són AMICS o contactes de FEINA.

Le següents línies són per conectar amb la BD i consultar les dades.  Si la consulta te èxit, escrivim l'XML amb les línies que comencen per la instrucció "echo".

Ara anem a la capa de presentació. Generarem un fitxer amb extensió html o htm amb el següent codi:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="ajax/xmlhttp02.js"></script>
<script src="ajax/sarissa.js"></script>
<script src="ajax/sarissa_ieemu_xpath.js"></script>
<script src="ajax/sarissa_ieemu_xslt.js"></script>
<script type="text/javascript">
function envia() {
    var tipus=document.getElementByID("cboTipus").value;
    var url="agenda.php?tipus="+tipus;
    carregarXml(url,"xmlAgenda",pinta);
}

function pinta() {
    var nodePart=xmlAgenda.selectNodes("//contactes/contacte");
    var nom;
    var llinatges;
    var telefon;
    var mail;
    var tipus;   

    var str="<table width='100%' border='0' cellpadding='0' cellspacing='1'>";
    for(var k=0;k<nodePart.length;k ){
       str+="<tr><td>"+nom+"</td><td>"+llinatges+"</td><td>"+telefon+"</td><td>"+mail+"</td><td>"+tipus+"</td></tr>";
    }

    str+="</table>";
    document.getElementById("taula").innerHTML=str;
}

</head>
<body onLoad="envia()">
<div id="taula"></div>
<div id="combo">
<select id="cboTipus" onChange="envia()">
    <option value="">Tots els tipus</option>
    <option value="amics">Amics</option>
    <option value="feina">Feina</option>
</select>
</div>
</body>
</html>

El primer que s'ha de tenir en compte és que necessitarem les llibreries de Javascript que podeu trobar al meu àlbum amb aquest mateix nom.  En concret són les següents:

  • xmlhttp02.js
  • sarissa.js
  • sarissa_ieemu_xpath.js
  • sarissa_ieemu_xslt.js

Aquestes s'encarregaran de que les nostres dues funcions de javascript a pàgina funcionin i les pots descarregar aquí. La primera anomenada "envia()" és l'encarregada de cridar la pàgina feta amb PHP passant-li un paràmetre a la variable "tipus". Dins aquesta funció hi trobam la cridada a la funció carregarXML a la que l'hi passam 3 paràmetres:

  • La url del PHP
  • el nom de l'objecte que representarà l'XML a les altres funcions
  • el nom de la funció que es cridarà una vegada aquesta hagi conclòs la seva tasca

L'altra funció anomenada "pinta" s'encarrega de pintar els valors del xml a dintre d'una taula que es troba dins el div "taula".

El codi HTML conté dos divs, l'esmentat anteriorment i l'anomenat "combo" perque a dintre hi conté un select que cada vegada que es sel·leccioni una opció cridarà la funció "envia()", aquesta funció també es crida quan la pàgina s'ha carregat completament.

I això és tot, espero que vos digui d'ajuda. 

 
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by LifeType - Design by BalearWeb