Código palabra:
Ver original
así
por ajax me registra esto en la base de datos(solo quiten el espacio por que aqui no se permite eso, lo pone en asterisco por eso puse el espacio)
Código registro en mysql:
y me da como resultado estoVer original
asÃ& shy;
Código resultado html:
Ver original
asÃ*
y por submit me registra esto
Código registro en mysql:
Ver original
así
y me lo muestra bien "así"
por ajax cambia la codificación o que?
uso el mismo archivo de inserción a la hora de enviar los datos
solo que lo llamo de diferentes maneras, si el usuario presiona enter se envía por ajax, y si presiona el botón se envía por submit.
mi función limpiar es la siguiente antes de insertarlo
Código PHP:
Ver original
$comentariotexto=cleanString($_POST['comentariotexto']); function cleanString($string){ return $string; }
para enviar por ajax uso esto
Código Javascript:
Ver original
oAjaxE2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
creo que eso es el problema, la codificación
de antemano gracias
REEDITO
medio corregi.
solo modifique la funcion cleanString asi
Código PHP:
Ver original
function cleanString($string){ //$string=htmlentities($string); return $string; }
con esto me funciona con ajax de maravilla,
pero el del submit ya ni siquiera guarda los datos que tienen acentos se detiene por que la base de datos no permite nullos y el EN_QUOTES deja la variable en nullo
para que el submit guarde los datos que tienen acentos debo cambiar la comentada por la otra asi
Código PHP:
Ver original
function cleanString($string){ //$string=htmlentities($string, ENT_QUOTES,"UTF-8"); return $string; }
podria hacer un booleano pero no creo que sea la forma mas correcta de hacer que esto funcione.
y pues el problema es en la codificacion del ajax, lo puedo resolver comentando y descomentando pero la idea es que cualquiera de los dos funciones, ya que uno es con enviar por ajax cuando el usuario presione enter, y el otro es enviar con submit cuando el usuario presione el boton, por si tiene desactivado javascript
lo unico que se ocupa para que funcione seria saber poner
esto UTF-8 en esta sintaxys
Código Javascript:
Ver original
oAjaxE2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
aqui el ajax completo
Código Javascript:
Ver original
var oAjaxE2; function enviarlosDatos(method,vars) { try{ oAjaxE2=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari } catch (e){ try{ oAjaxE2=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer } catch (e){ try{ oAjaxE2=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("Tu explorador no soporta AJAX."); return false; } } } var URL="insertarelcomentario.php" if (method == "GET") { oAjaxE2.open(method, URL+"?"+vars, true); vars = ""; alert("get") } else { oAjaxE2.open(method, URL, true); oAjaxE2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } oAjaxE2.send(vars); }
nose si tenga que ver eso pero lo envio del index y contiene esto
Código PHP Y HTML:
Ver original
<? session_start();?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
cabe destacar que en el index uso esto
Código HTML:
Ver original
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
YA CORREGI poniendo utf8 a todo
entonces todo lo que meto a la base de datos ya me lo muestra bien.
ahora tengo otro problema
ahora me muestra informaci�n en el resto de la web(lo que no esta en base de datos)
tuve que acudir a lo que no queria, tengo que hacer esto en toda la web cada vez que use un acento
Código PHP:
Ver original
Dise<? echo limpiar("ñ");?>o