Archive for month: February, 2009

¿Como hacer esquinas redondeadas?

Categories: CSS, Diseño - Tags: ,

Hay muchas formas de hacer esquinas redondeadas yo voy a mostrar como hacerlo de la forma mas simple usando solo 2 div y sin necesitar hacks ni javascript ni ningun otro truco raro

HTML de las esquinas redondeadas

La idea es poner un div con las esquinas redondeadas de arriba y que ademas contenga nuestro texto y un div con las esquinas de la parte de abajo.

1
2
3
4
5
<div id="main">
  Aqui va todo nuestro texto
</div>
<div id="mainBottom">
</div>

Estilos para las esquinas redondeadas

El problema de las esquinas redondeadas es que la imagen de fondo debe ser lo suficientemente grande para que no se corte, o usar 3 divs para que uno sea la parte superior, otro el medio y el borde de abajo, prefiero usar solo 2 divs, el superior con un borde muy grande eso no es problema ya que al ser mayormente blanco jalará 1 o 2 Kb mas (osea practicamente nada)

1
2
3
4
5
6
7
8
9
10
11
12
13
#main {
    width:605px;
    background-image:url(img/main_bg.png);
    background-repeat:no-repeat;
    padding:40px;
       margin:auto;
}
#mainBottom {
    background-image:url(img/main_bot_bg.png);
    width:685px;
    height:40px;
        margin:auto;
}

Eso sería todo, puedes ver una demo y bajar el codigo fuente:






Tutorial DOM html javascript

Categories: AJAX, Otros - Tags: , , ,

¿Qué es DOM?

Si estas interesado en hacer páginas con ajax, generar elementos dinamicamente entonces requieres usar DOM (Document Object Model), lo que podemos traducir como “Modelo en Objetos para la representación de Documentos” si lo se hasta ahi no suena a nada. Traduciendolo nuestras páginas HTML tienen un conjunto de elementos, graficos, texto, formularios, etiquetas, DOM lo que busca es que estos elementos tengan una estructura estandard que permita manipularlos usando javascript (ajax).
Por ejemplo si tengo un formulario usando dom podria validarlo, o podrias hacer que al elegir una opcion de un combo aparezcan nuevos campos, etc, etc.

Ejemplo uso de DOM

Voy a hacer un pequeño script que automaticamente busque el primer campo del formulario y lo seleccione automaticamente al cargar la pagina:

1
2
3
4
5
<form name="frmNewCargo" id="frmNewCargo" method="post" action="reg_cargo.jsp" onSubmit="return validar(this);">
  <input type="text" name="idcargo" id="idcargo" size="5">
  <input type="text" name="nomcar" id="nomcar" size="40">
  <input type="text" name="min" id="min" size="10">
</form>

Y ahora el script debemos llamarlo al cargar, la pagina, ojo este script funciona con cualquier formulario, basta enviarle a la funcion el nombre de formulario correcto

1
<body onLoad="javascript:enfoca_primero('frmNewCargo');">

Nuestra funcion para detectar el primer campo sería

1
2
3
4
5
function enfoca_primero($cual) {
    var frm=document.getElementById($cual);
    var arr_input=frm.getElementsByTagName("input");
    arr_input[0].focus();
}

Subir archivos usando ajax jquery

Categories: AJAX, PHP - Tags: , ,

No es posible subir archivos al servidor usando ajax debido a un problema de seguridad, sin embargo es posible emularlo usando un iframe y de esa forma hacer un upload sin tener que recargar la página web, en este tutorial voy a explicar como hacer eso usando jquery.

¿Por qué usar este plugin?

Seguro habras visto en Internet varias otras formas pero este nos da varias ventajas:

  • Permite limitar la subida de archivos a algunas extensiones
  • No necesita recargar la página web
  • Facil de implementar
  • Puedes controlar los eventos mientras se sube y despues de subir el archivo

HTML para el uploader

El plugin jquery se encarga casi de todo asi que lo único que requerimos es un div que al darle click permita subir un archivo.

1
2
3
<div id="upload_button">Upload</div>
<ul id="lista">
</ul>

CSS para el uploader

Ya cada uno se encarga de ponerle el formato que uno desee al boton, yo usaré uno basico para darle algo de forma

1
2
3
4
5
6
7
8
9
10
#upload_button {
    width:120px;
    height:35px;
    text-align:center;
    background-image:url(boton.png);
    color:#CCCCCC;
    font-weight:bold;
    padding-top:15px;
    margin:auto;
}

AJAX

Primero hay que incluir la libreria jquery, luego el plugin y finalmente nuestro código para manejar el uploader, no todo el código que publico es necesario ya que puedes obviar la parte de la comprobación de extensión al igual que el agregar el nombre del archivo a la lista luego de completar la subida del archivo.

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
<script language="javascript" src="js/jquery-1.3.1.min.js"></script>
<script language="javascript" src="js/AjaxUpload.2.0.min.js"></script>
<script language="javascript">
$(document).ready(function(){
    var button = $('#upload_button'), interval;
    new AjaxUpload('#upload_button', {
        action: 'upload.php',
        onSubmit : function(file , ext){
        if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
            // extensiones permitidas
            alert('Error: Solo se permiten imagenes');
            // cancela upload
            return false;
        } else {
                       Cambio el texto del boton y lo deshabilito
            button.text('Uploading');
            this.disable();
        }
        },
        onComplete: function(file, response){
            button.text('Upload');
            // habilito upload button                      
            this.enable();         
            // Agrega archivo a la lista
            $('#lista').appendTo('.files').text(file);
        }  
    });
});
</script>

Upload.php

Veamos ahora que ocurre con el archivo php que subirá la imagen al servidor y que podemos cambiar según nuestras necesidades

1
2
3
4
5
6
7
8
9
10
11
12
<?php
// defino la carpeta para subir
$uploaddir = 'uploads/';
// defino el nombre del archivo
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
// Lo mueve a la carpeta elegida
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "success";
} else {
  echo "error";
}
?>






//////// Actualización ///////////
He publicado un nuevo post respondiendo algunas dudas e implementando el ajax uploader con la última versión, pueden verlo AQUI

IE Tester 0.3 prueba tus paginas

Categories: Otros - Tags: ,

Uno de los dolores de cabeza de todo desarrollador es hacer sus páginas compatibles entre todos los navaegadore o por lo menos entre los más populares lo cual lamentablemente no significa entre los mejores; basta que recordar que el peor navegador (y por muuuuchas razones) es Internet Explorer 6 y sin embargo es el más utilizado.
Asi que debemos probar nuestras páginas web entre IE6, IE7 y ahora ultimo IE8 RC1, Firefox por lo general no da problemas si hacemos las cosas bien además de tener al poderoso Firebug como aliado (IE 8 sacó una copia un tanto deficiente llamada IE developer toolbar). Bueno vamos al grano IE Tester es una herramienta que nos permite probar nuestra página en distintas versiones de Internet Explorer de forma muy facil, lo mejor es gratuito y podemos bajarlo aqui
ietester-03

Recargar Texto Automaticamente Jquery Ajax

Categories: AJAX - Tags: ,

Con la ayuda de jquery es muy fácil recargar un texto ya sea que lo invoquemos de una base de datos o de un array, para este ejemplo voy a usar un array generado por un archivo PHP; y voy a usar un set_interval de javascript para que se recargue automaticamente cada cierto tiempo.

El html para recargar

Mi codigo html se limita a crear un div donde recargar el texto

1
2
3
<body>
<div id="recargado">Mi texto sin recargar</div>
</body>

El javascript para recargar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script language="javascript" src="js/jquery-1.2.6.min.js"></script>
<script language="javascript">
function recargar(){   
     // Limita el contador a solo 5 elementos
    if ($actual<=5) {
        $actual=$actual+1;
    } else {
        $actual=1;
    }
     // Setea la variable que vamos a enviar a php
    var variable_post=$actual;
    // Enviamos los valores a miscript.php
    $.post("miscript.php", { variable: variable_post }, function(data){
               /// Actualizamos el div recargado
        $("#recargado").html(data);
    });        
}
$actual=0;
// Establecemos el temporizador a 2 segundos
timer = setInterval("recargar()", 2000);
</script>

miscript.php

Este script puedes cambiarlo por una conexion de base de datos, para el ejemplo yo uso un simple array con los mensaje

1
2
3
4
5
6
7
8
<?php
// Creo el array
$mensajes=array("0", "Mi primer mensaje", "2do mensaje", "un tercer mensaje", "cuarto Mensaje", "5to mensaje");
// Busco el elemento seleccionado
$nro=$_POST['variable'];
// Muestro el mensaje
echo $mensajes[$nro];
?>