RSS Feeds

29.4.11

Acentos, eñes y saltos de línea PHP, jQuery, MySQL

Actualmente estoy trabajando con PHP MySQL y jQuery, en el proceso me encontré con algunos problemas con los acentos y eñes, despues de haberlos solucionado les comparto la información que encontre y que me funciono perfecto.


// Acentos //

-----------------------------------------

Situación 1:
Mediante un select dependiente se carga el texto de una consulta y al guardar ese texto en la DB se guarda con cadenas como (�) en los acentos y ñs

Problema:
Al mostrar esos datos en la página desde la DB el resultado viene con rombos <?> en los acentos y ñs

Solucion:
Antes de ejecutar la consulta que devolvera los resultados para ser guardados, poner en la cabecera del php donde se ejecuta la consulta

<?php header( 'Content-type: text/html; charset=iso-8859-1' );?>

Los resultados devueltos regresan codificados en iso-8859-1 (con acentos y ñs)
Al guardar esos resultados se guardan correctamente en la DB

-----------------------------------------

Situación 2:
Al enviar a la DB información tomada mediante .val() con jQuery los acentos y ñs se guardan con (ó , ú , ñ);

Problema:
En este caso no aparecen los rombos <?> sino que la cadena devuelta en la consulta se muestra con (ó , ú , ñ) reemplazando a las ñs y acentos tal y como se guardó.

Solución:
Antes de guardar la cadena en la DB:

En la cabecera del archivo (En la primera linea de tu archivo) establece el juego de caracteres:

<?php header( 'Content-type: text/html; charset=iso-8859-1' );?>

Y despues antes de guardar la cadena en la DB decodificala como sigue:

$mi_nuevo_texto = utf8_decode( $cadena_de_texto );


En donde $mi_nuevo_texto será la cadena que se guardara en la DB.

El resultado es que se guarda bien en la DB y se muestra bien en la página.

-----------------------------------------

Nota:

*Requisito todos tus juegos de caracteres en tus html o php que envíen la información a la DB deben ser de tipo: charset=iso-8859-1

-----------------------------------------


// Guardar saltos de linea <br /> de un textarea a la DB //

Situación:
Se redacta un texto con saltos de linea (enters) en un textarea, se guarda en la DB.

Problema:
Al leer ese texto no se interpretan los saltos de linea que se crearon al momento de redactarlo.

Solución:
antes de mostrar el texto en la página con echo o print utilizar:

nl2br($cadena_de_texto);

Con esto se interpretarán los saltos de línea que se hayan guardado en la DB.

-----------------------------------------

Espero que les sirva a mi me funcionó perfecto.

11.4.11

Obtener valor de un campo cualquiera con jQuery

Que tal amigos, después de un largo tiempo sin tocar el blog les comento que estos meses han sido excelentes he aprendido muchas cosas y he tenido muchas gratas experiencias y participado en grandes proyectos como pikhub donde estuve trabajando como UI developer en su etapa inicial, esto me dió la oportunidad de poder continuar documentándome más sobre jQuery y ahora estoy trabajando en un proyecto en la oficina en el que necesito aplicarlo mas que nunca en base de datos.

El problema aquí era obtener el valor de un campo INPUT dinámico para luego guardar los cambios en la base de datos a lo que encontré dos soluciones:

la primera utilizando:
$("#txt_nombre"+cual).get(0).value;

y la segunda mas corta:
$("#txt_nombre"+cual).val();

En donde "cual" es la variable que se pasa a través de una funcion, con esto podemos obtener el valor de los campos de texto y posteriormente enviarlos a la base de datos.

Espero que les sirva.