viernes, 17 de mayo de 2013

Obtener el texto de un li por índice con jquery

Cómo obtener el texto de un li por índice en una lista con jquery


Se puede acceder al texto de un li dentro de una lista utilizando jquery. Esto se puede acceder por el índice dentro de la lista fácilmente con alguna de las opciones que ofrece jquery.

Se puede hacer de dos maneras con jquery usando .eq() o :eq()

Ejemplo.

<ul>
  <li>Opción 1</li>
  <li>Opción 2</li>
  <li>Opción 3</li>

  <li>Opción 4</li>
</ul>


Se accedería de esta manera la segunda opción, recuerden que empieza en cero:

$('ul').get(1).text(); 

o así

$('ul :eq(1)').text();

Pueden probar en esta página: http://jsfiddle.net/nick_craver/BU6et/

De aquí tome la referencia:
http://stackoverflow.com/questions/3370443/jquery-find-by-index-in-a-list

Espero les sirva.


Como obtener los valores seleccionados de un arreglo de checkbox de un formulario con php

Como leer un arreglo de checkbox con php


Para obtener los valores seleccionados de un arreglo de checkbox en php es necesario que el nombre de los checkbox utilice corchetes "[]" al final para que al hacer el $_GET de php ésta variable pueda ser tomada como arreglo. 

Al hacer el $_GET de php se usa el nombre de la variable sin corchetes.

Si no se usan lo corchetes en el nombre de los checkbox sólo devolverá el primer elemento seleccionado y eso seguramente es lo que los trajo aquí.
 
Les pongo un ejemplo de cómo debe ser colocado el código HTML y cómo debe ser recibido con PHP

Ejemplo.

El código html:


<form method="get">
    <input type="checkbox" name="dias[]" value="Lunes"/> Lunes<br/>
    <input type="checkbox" name="dias[]" value="Martes"/> Martes<br/>
    <input type="checkbox" name="dias[]" value="Miércoles"/> Miércoles<br/>

    <input type="checkbox" name="dias[]" value="Jueves"/> Jueves<br/>   
    <input type="checkbox" name="dias[]" value="Viernes"/> Viernes<br/>  
    <input type="checkbox" name="dias[]" value="Sábado"/> Sábado<br/>
    <input type="checkbox" name="dias[]" value="Domingo"/> Domingo<br/>     
 <input type="submit" value="Guardar" />
</form>


El código php:

$seleccionados = $_GET['dias'];
for($i=0; $i < count($
seleccionados); $i++){
    echo "Días seleccionados " . $
seleccionados[$i] . "<br/>";
}


Espero les sirva.

lunes, 18 de marzo de 2013

Cómo compartir una red inalámbrica wifi en windows 7 a otra computadora o dispositivo

Cómo compartir internet a otro computadora o dispositivo

Me vi en la necesidad de tener que compartir una conexión inalámbrica wifi desde mi lap.

Leyendo me encontré que Windows 7 incluye una utilidad para crear redes wifi virtuales. Les comparto estos pasos muy interesantes que te permiten compartir internet a otros dispositivos.

Como crear una red virtual wifi en windows 7

Abrir una línea de comandos de windows con privilegios de administrador. Es muy importante que la línea de comandos la abran con permisos de administrador para que no les salgan errores.

Para esto ir a Inicio - Programas - Accesorios - Click derecho en Símbolo del sistema y seleccionar "Ejecutar como administrador". Como en la imagen de abajo.


|

Como configurar la interface virtual

Escriban en el símbolo del sistema lo siguiente:

netsh wlan set hostednetwork mode=allow ssid=nombredered key=elpassword

Escribir en ssid el nombre como quieran llamar a a la red virtual y en key la contraseña deseada.


Al ejecutar esta línea se puede ver una nueva conexión de red en la lista de conexiones de red la cual aparece como Virtual WiFi miniport como en la imagen de abajo. Aparecerán tantas redes como se ejecute la la línea anterior que se encarga de crear redes virtuales. Hay que tener en cuenta que si se activan muchas, la capacidad de cada una y la original se verán mermadas porque todas son una que está siendo compartida a través de software.



En Panel de Control - Redes e Internet - Conexiones de red seleccionar la red que está siendo actualmente utilizada. Ir a Propiedades - Uso Compartido y seleccionar la casilla "Permitir que los usuarios de otras redes se conecten a través de la conexión a Internet de este equipo". Seleccionar la red virtual recien creada para indicar que se va a compartir hacia ella como en la siguiente imagen.




Después de esto, en la misma línea de comandos, ejecutar la siguiente instrucción para iniciar la red virtual:

netsh wlan start hostednetwork




Esta segunda instrucción se debe ejecutar cada que quieran iniciar la red virtual. Cuando apaguen la máquina la red se desactivará por lo que cada que la prendan deben ejecutar únicamente la segunda instrucción, con permisos de administrador también, como en la siguiente imagen.



Tal vez encuentren alguna manera de iniciar la red wifi virtual al iniciar windows automáticamente.

Desde otros dispositivos con wifi podrán ver la nueva red creada y conectarse con los datos que configuraron para ssid y key.

De aquí he tomado la referencia y una imagen:

http://www.blogsdna.com/5506/how-to-setup-virtual-wifi-in-windows-7-without-any-extra-software.htm

Espero les sirva.

domingo, 10 de marzo de 2013

RegAsm : warning RA0000


RegAsm : warning RA0000 : El registro de un ensamblado sin signo con /codebase puede provocar que dicho ensamblado interfiera con otras aplicaciones instaladas en el mismo equipo. El modificador /code
base sólo se utiliza con ensamblados con signos. Proporcione al ensamblado un nombre seguro y vuelva a registrarlo.


RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.




Al intentar registrar una dll para enviar correos con regasm me encontré con el warning RegAsm : warning RA0000.  Este warning aparece cuando intentas registrar una dll que no está firmada.

La dll la quiero llamar desde mi aplicación web con asp clásico por lo que necesito registrarla en la máquina para después poder llamarla desde mi código asp clásico.

Solución.

Lo que se debe hacer es firmar la dll generada y volver a compilar el proyecto. 

Para firmar la dll en Visual Studio 2010 debes ir a la ventana de Propiedades del proyecto en la pestaña de Firma, hacer click en Nuevo y aceptar las ventanas siguientes. Verificar que la casilla "Firmar el ensamblado" esté activa como en la imagen.




Si lo que deseas también es utilizar esta dll para llamarla desde algún proyecto .NET o ASP clásico, se 
debe establecer la propiedad ComVisible a True en el archivo assemblyInfo.cs 



O también seleccionando la opción Crear ensamblado visible a través de COM en la ventana de Propiedades del proyecto - Aplicación como en la imagen de abajo.



Con esto ya se puede hacer el llamado al objeto desde la aplicación de asp clásico de acuerdo al namespace, nombre de clase y métodos que se hayan definido. Sería una llamada como la siguiente:

Set myMail = CreateObject("Namespace.Clase") 
myMail.From = NombreFrom
myMail.To =  EmailTo
myMail.Subject = MsgSubject 
myMail.BodyFormat = 0 
myMail.MailFormat = 0 
myMail.Body = strResult 
myMail.Send
Set myMail = Nothing

Espero les sirva.

miércoles, 19 de diciembre de 2012

Error de jCarousel al hacer zoom en Chrome


jQuery jCarousel truena al hacer zoom en Chrome.

Existe un problema con el plugin jCarousel de jQuery que ocurre cuando se realiza un zoom diferente al 100% en una página utilzando Google Chrome como navegador.

Para replicar el problema se tiene que ver el jCarousel en acción dentro de Google Chrome y hacer un zoom a la página diferente al 100%.
Los elementos del carrusel se descuadran cuando el zoom es distinto del 100%, y esto produce que se vean cortadas las imágenes al estar avanzando o retrocediendo

Este problema sólo se presenta con Chrome y por lo que leí se debe a que el plugin utiliza en varias ocasiones el método this.list.css(this.lt) el cual usa window.getComputedStyle que en Chrome toma en cuenta el zoom actual de la página.

Solución.

Lo que hay que hacer es modificar el archivo jquery.jcarousel.min.js o donde tengan el plugin y quitar el uso de este método y a su vez utilizar this.list[0].style[this.lt]

Es decir, reemplazar todas las ocurrencias de this.list.css(this.lt) por this.list[0].style[this.lt] dentro del plugin jCarousel.

Osea un replace desde el editor de código que utilices. Son como seis ocurrencias que hay que reemplazar.

Así debe quedar



Con esto se soluciona el problema y el carrusel de imágenes se observa correctamente desde Chrome al
hacer zoom sobre la página.

De aquí tomé la idea principal: https://github.com/jsor/jcarousel/issues/85

Espero les sirva.







jueves, 29 de noviembre de 2012

jquery validation: cambiar mensajes de error que vienen por default

Como cambiar los mensajes de error del plugin Jquery Validator

Me encontré con el problema de querer personalizar los mensajes que tiene el plugin validator de jquery para validar formularios. La razón principal es que necesito cambiar el lenguaje a español porque por default los mensajes de error vienen en inglés.

El código lo pongo aquí abajo. Lo que se tiene que hacer es definir los mensajes de error extendiendo el plugin de jquery para personalizar los mensajes.

Este código debe ir antes de la primer llamada al método validate del formulario que estés validando.

Aquí pongo todos los mensajes que se pueden personalizar pero en mi caso sólo quiero traducir el mensaje de EqualTo para que diga "Ingresa el mismo valor."


$(document).ready(function() {
    $.extend(jQuery.validator.messages, {
        required: "This field is required.",
        remote: "Please fix this field.",
        email: "Please enter a valid email address.",
        url: "Please enter a valid URL.",
        date: "Please enter a valid date.",
        dateISO: "Please enter a valid date (ISO).",
        number: "Please enter a valid number.",
        digits: "Please enter only digits.",
        creditcard: "Please enter a valid credit card number.",
        equalTo: "Ingresa el mismo valor.",
        accept: "Please enter a value with a valid extension.",
        maxlength: $.validator.format("Please enter no more than {0} characters."),
        minlength: $.validator.format("Please enter at least {0} characters."),
        rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
        range: $.validator.format("Please enter a value between {0} and {1}."),
        max: $.validator.format("Please enter a value less than or equal to {0}."),
        min: $.validator.format("Please enter a value greater than or equal to {0}.")
    });
});

Después de esto ya puedes hacer los llamados al método validate del formulario

//validacion de formularios
$("#miform").validate({
rules: {
txtmailpersona: "required",
txtcmailpersona: {
 equalTo: "#txtmailpersona"
}
 },        
 messages: {
 txtnombrepersona: "*",
 txtapellidopaterno: "*",
 txtmailpersona: {
  required: "*",
  email: "El Email debe tener la forma nombre@dominio.com"
 },  
 txtcmailpersona: {
required: "*",
email: "El Email debe tener la forma nombre@dominio.com..."
 }
}
});

Les dejo aquí la referencia de donde lo encontré:

http://stackoverflow.com/questions/9371338/jquery-validation-plugin-response-messages



lunes, 9 de abril de 2012

Busque un registro en la carpeta Problemas de sincronización

He tenido un problema con mi outlook 2007. Tengo instalado el outlook connector para poder revisar mi cuenta de hotmail desde allí y he tenido problemas porque intenté enviar un archivo muy pesado. Como nunca terminó cada que lo abro sigue intentando enviar pero no me sale el correo en la bandeja de salida para poder eliminarlo.

Mirando en los detalles del envio, me dice esto:


Outlook Hotmail Connector versión 14.0.6106.5001
Cuenta: xxxxxx@hotmail.com
Inició sesión correctamente a las 09/04/2012 07:27:19 p.m.
Correo electrónico: Última actualización correcta a las 07:31 p.m.. Calendario: Última actualización correcta a las 07:31 p.m.. Contactos: Última actualización correcta a las 07:31 p.m..
Errores:
Hora: 09/04/2012 07:27:49 p.m.Error en Correo electrónicoError en la operación Enviar y recibir.Busque un registro en la carpeta Problemas de sincronización.
Hora: 09/04/2012 07:29:56 p.m.Error en Correo electrónicoError de operación de red
Hora: 09/04/2012 07:31:31 p.m.Error en Correo electrónicoError de operación de red


El problema es que no sabía donde estaba la carpeta "Problemas de sincronización."
Bien, pues buscando un poco encontré que para poder verla tienes que ir al menú Ir (Go) -> Lista de carpetas (Folder list). Haciendo click allí, podrás ver esta carpeta.

Así pude ver el correo que estaba atorado y eliminarlo.

Espero te sirva.