Foros del Web » Programando para Internet » Javascript » Frameworks JS »

envar singno interrogación cerrado...

Estas en el tema de envar singno interrogación cerrado... en el foro de Frameworks JS en Foros del Web. Hola sres, nuevamente estoy contando con ustedes... No puedo enviar un signo de interrogación cerrado al servidor, con ajax: necesito enviar un texto cualquiera de ...
  #1 (permalink)  
Antiguo 17/05/2010, 19:15
 
Fecha de Ingreso: agosto-2009
Mensajes: 70
Antigüedad: 14 años, 8 meses
Puntos: 2
envar singno interrogación cerrado...

Hola sres,
nuevamente estoy contando con ustedes...

No puedo enviar un signo de interrogación cerrado al servidor, con ajax:

necesito enviar un texto cualquiera de un campo de texto, pero usando ajax.

var send = new Ajax.Request(url, {method: 'post', parameters: 'text='+$(textbox).value, onComplete: enviado });

Resulta que funciona,

pero cuando envío un texto, como por ejemplo: "hola, cómo estas?", no se envía por culpa del signo de interrogación cerrado....

cómo puedo hacer?? Se puede codificar la cadena?... cómo?

(espero que se entienda, soy medio bruto)..
  #2 (permalink)  
Antiguo 18/05/2010, 05:58
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: envar singno interrogación cerrado...

Hola

Prueba con alguna de estas funciones

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 23/05/2010, 13:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 70
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: envar singno interrogación cerrado...

ok, gracias..
pero el problema lo he detectado del lado del cliente...

porque cuando quiero enviar el texto "¿?" el firefox me tira el error:
"malformed URI sequence" en la librería prototype.

lo que se envía para la cadena "¿?" resulta ser "%bf%3f"

está mal codificada la cadena?

les paso el codigo fuente:

Código Javascript:
Ver original
  1. function sendText() {
  2.     var url = './_ajax/fsendtext.php';
  3.     var urlParams='uid='+userid+'&fid=' + forumid + '&text=' + prepareString($(textContainer).value);
  4.    
  5.     var send = new Ajax.Request(url, {
  6.         method: 'post',
  7.         parameters: urlParams,
  8.         onComplete: sendTextConfirmation
  9.     });
  10.     Field.select('text');
  11.     $(textContainer).value='';
  12.     setTimeout(function(){Form.reset('frmtext');},5);
  13. }
  14.  
  15. function prepareString(str) {
  16.     str=encodeURL(str.stripTags().stripScripts().escapeHTML());
  17.     alert(str); //con este alrert visualizo en pantalla lo que envía
  18.     return str;
  19. }
  20.  
  21. function encodeURL(text) {
  22.     var encoded = "";
  23.     for (i = 0; i < text.length; i++) {
  24.         encoded += "%" + String.substr("0" + text.charCodeAt(i,
  25.  
  26. 1).toString(16), -2);
  27.     }
  28.     return encoded;
  29. }

Bueno espero hacerme entender... el problema es que no puedo enviar "¿?", ni cadenas con acentos u otros símbolos, antes era al revés. (sin el encodeURL)

Última edición por salojc2006; 23/05/2010 a las 13:11 Razón: me olvide de poner texto..
  #4 (permalink)  
Antiguo 23/05/2010, 14:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: envar singno interrogación cerrado...

Hola

¿Por qué no pruebas ha escapar el valor?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 24/05/2010, 11:34
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: envar singno interrogación cerrado...

Tenía el mismo problema con las funciones del prototype. Me recomendaron usar el encodeURIComponent() en cada parametro en dodne deba ingresar cadenas. Úsalo y nos comentas.
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 29/05/2010, 20:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 70
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: envar singno interrogación cerrado...

Cita:
Iniciado por cesarpunk Ver Mensaje
Tenía el mismo problema con las funciones del prototype. Me recomendaron usar el encodeURIComponent() en cada parametro en dodne deba ingresar cadenas. Úsalo y nos comentas.
bueno... gracias... este funcionó..
Adler, lo tuyo también es válido, sólo q en el servidor tengo que transformar los hexadecimales en los correspondientes caracteres..

Creo q así está mas fácil...
Lo que me falta es usar la misma codificación de caracteres... Qué juego de caracteres me recomiendan? el utf8 o el iso-....

No sé la diferencia entre ellos...
  #7 (permalink)  
Antiguo 29/05/2010, 21:34
 
Fecha de Ingreso: agosto-2009
Mensajes: 70
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: envar singno interrogación cerrado...

bueno muchachos usé utf-8... y se ven bien los caracteres que envío, gracias x su colaboración...

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:25.