domingo, 27 de enero de 2013

Recoger por POST una lista de checkbox en PHP

Buenas a tod@s señoras y señores!!!

Hoy explicaré como recoger una lista de checkbox de un formulario HTML, utilizando un POST en PHP.

Lo primero es crear el formulario de la siguiente forma:

<form action="recoger_checkbox.php" method="post">
     <input type="checkbox" name="numero[]" value="1"/> 1 <br/>
     <input type="checkbox" name="numero[]" value="2"/> 2 <br/>
     <input type="checkbox" name="numero[]" value="3"/> 3 <br/>
     <input type="checkbox" name="numero[]" value="4"/> 4 <br/>
     <input type="submit">
</form>

Véase que en el parámetro name hemos escrito numero[], con eso "[]" conseguiremos pasar por post la cadena de valores que el usuario elija, dentro de la cadena estarán los valores de value.
Obtendremos algo similar a esto (he eliminado el botón del submit para evitar confusión ya que no lleva a ninguna parte!):

1
2
3
4

Una vez tenemos esto procedemos a recoger los checkbox que el usuario ha seleccionado. Para esto debemos crear el fichero recoger_checkbox.php mencionado en la acción del formulario y obtener los datos de la siguiente forma:

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $numero=$_POST["numero"];
    $count = count($numero);
    for ($i = 0; $i < $count; $i++) {
        echo $numero[$i];
    }
}
Comentando de manera rápida lo que hace el código:
Línea 1: Si la petición es POST continuará el proceso.
Línea 2: Guardamos la cadena obtenida por POST en la variable $numero (podriamos trabajar directamente con $_POST["numero"]).
Línea 3: Guardamos el número de parámetros que contiene la cadena.
Línea 4: Recorremos la cadena utilizando el for.
Línea 5: Mostramos por pantalla el contenido de la posicion de la cadena.

Con eso conseguiremos mostrar los valores seleccionados en el checkbox, a partir de aquí podremos hacer con ellos lo que nos plazca; como introducir-los en la base de datos o realizar operaciones con ellos.

Un abrazo!!!

sábado, 26 de enero de 2013

Fondo transparente, contenido opaco (opacity)

Buenas a todos!

Hoy traigo un poco de CSS, concretamente un problema que me trajo muchos dolores de cabeza pero que tiene fácil solución, lo suyo es encontrarla...

Definimos un DIV de fondo rojo y con opacidad 0.4:
<div style="background-color: red; opacity: 0.4;">

Y dentro ponemos una imagen.
src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/47/PNG_transparency_demonstration_1.png/300px-PNG_transparency_demonstration_1.png" />


Puede que así nos resulte correcto dependiendo de lo que queramos hacer...
Pero en mi caso, quería que la imagen tuviera opacidad 1, mientras que el fondo permaneciera transparente.
Dado que la opacidad del DIV se aplica en todo su contenido, como podemos solventar este problema?

La respuesta es simple:
En el estilo del DIV, aplicamos la transparencia solamente en el fondo y no en el contenido del DIV, de esta forma:
<div style="background-color: rgba(255,0,0,0.4);">


La imagen se ve perfecta ahora y el fondo ha quedado transparente. Véase que hemos cambiado el nombre del color por su código RGB (red => 255,0,0) y hemos añadido el valor alpha (RGBA) para definir la transparencia del fondo.

viernes, 25 de enero de 2013

Crear archivos DOCX dinámicamente desde PHP

Hola mundo!

Por primera vez voy a escribir en mi blog y compartir mis experiencias. De momento voy a subir un post relacionado con la informática para probar todo esto... Pues bien ahí va!

El otro día estaba buscando como poder crear un archivo .docx, dinámicamente desde PHP. Tiré de google y encontré esta magnífica librería de PHP: phpdocx. Pero después de probar y probar la versión gratuita, no se adaptaba a mis requisitos y como pagar 99 € no entraba en mis planes continué buscando... 

Y al final lo encontré!!! phpword. No tiene tantas funcionalidades como la versión de pago del anterior, pero es mejor que su versión gratuita... Obviamente este es gratuito y viene acompañado de algunos ejemplos que hablan por si solos.
Puedes descargar-te la librería desde su página web, repito: http://phpword.codeplex.com/ .
Para estrenar también el nuevo servicio de almacenamiento en la nube MEGA, voy a colgar una versión, tal vez más antigua dependiendo de la fecha en la que leáis esto.

PHPWord_0.6.2_Beta.zip (174 KB)

En conclusión si tienes 99€ para gastarte en una libreria de PHP que obviamente parece cumplir de maravilla sus funciones, toma la primera opción. Si por el contrario, tu próposito no merece ninguna inversión y puedes cumplir-lo con un método sencillo pero eficaz, toma la segunda.

C U