Archivo de la etiqueta: living la vida nerd


Taraxcum officinale Weber


Wanderers pluvia


Detalle de un dvergr de 204 líneas (comentarios incluídos)

Los enanos nórdicos o Dvergar (nórdico antiguo dvergar, sing. dvergr) son seres de la mitología nórdica, asociados con las piedras, lo subterráneo, la muerte, la suerte, la magia, y la tecnología, especialmente la forja.

Son grandes artífices, inteligentes e industriosos, y entre otras maravillas, crearon el martillo Mjolnir para Thor, la lanza Gungnir para Odín, el anillo mágico Draupnir, y el navío Skíðblaðnir. El collar Brisingamen de Freyja y el jabalí dorado de Freyr, Gullinbursti son otras obras suyas.
Fuente: Wikipedia

Unos los artífices no muy conocidos es la creación de la forja de la luz binaria, usada para que se pudieran recrear a partir de unos y ceros los sueños a cualquier escala, y que sólo funcionaba 1 vez por cada casa en donde se utilizaba.

Esta y otras creencias sobre los Dvergar conforman la base en la cual se asienta lo que hoy se conoce como programación extrema.

Validar checkbox como arrays

En esta categoría voy a comenzar a publicar post’s con soluciones a problemas que me han quitado el sueño. Las reuniré bajo «dev-notas mentales» y trataré de separarlas por tecnología.
Así que ahi vamos.

Problema:

Tenemos un formulario html hecho de la siguiente manera:

<form method="post" action="algo.php" onsubmit="return Valida()">
<input type="checkbox" name="miCheckbox[]" value="1" />
<input type="checkbox" name="miCheckbox[]" value="2" />
<input type="checkbox" name="miCheckbox[]" value="3" />
<input type="submit" name="bSubmit" /> </form>

Necesitamos que un script php (algo.php) reciba los valores de «miCheckbox» como si fuese un array pero necesitamos validar que al menos 1 esté chequeado.
Para validar recurría siempre a «document.getElementById» para acceder a cada uno de los checkboxes, pero con listas bastante grandes se torna quizás un poco pesado el proceso.

Existe otra manera que podría ser algo mejor:

La función validar podría ser:

function Valida ()
{
if (IsChk('miCheckbox'))
{
//ok, hay al menos 1 elemento checkeado envía el form!
return true;
} else {
//ni siquiera uno chequeado no envía el form
alert ('Chequeame un elemento!');
return false;
}
}
function IsChk(chkName)
{
var found = false;
var chk = document.getElementsByName(chkName+'[]');
for (var i=0 ; i < chk.length ; i++)
{
found = chk[i].checked ? true : found;
}
return found;
}

Como diré siempre: si alguno se encuentra con el problema ahi tiene otro punto de vista.