2010-09-23 10 views
5

Intentando pasar espacios junto con la llamada ajax.Pasando Valor Incluyendo espacios en Ajax Llame al

'palabra' ha sido aprobada al igual que 'palabra' creo que sí.

Por otro lado, se deben enviar dos palabras completamente con llamada.

'segunda palabra' pero no el mismo que 'segunda palabra'

¿Debo recortar antes llamada o hacer esto en script del lado del servidor? ¿Cómo puedo enviar espacios también?

Respuesta

1

sé que esto es un viejo ques pero me gustaría señalar que la respuesta aceptada sugiere una función que está obsoleta a partir de la versión 1.5 de JavaScript.

En su lugar, debe usar encodeURI() o encodeURIComponent() para enviar espacios y otros caracteres especiales.

var param = encodeURIComponent("word second "); 
console.log(param); // outputs 'word%20second%20' 

PHP en el otro extremo manejará la decodificación automáticamente. Esto te deja libre para recortar los espacios donde más te resulte práctico. Si realmente no importa técnicamente, cortaría los espacios en el código JavaScript utilizando la función trim() porque ahorra un poco de ancho de banda de red y facilita la carga del servidor al recortar el lado del cliente.

0

La forma más simple, creo, es encodeURIComponent cadena en javascript antes de enviar xmlhttprequest, y luego urldecode en PHP

+1

urldecode se realiza de forma automática – zerkms

4

Para permitir un parámetro para incluir espacios, etc. usted querrá utilizar la función javascript escape() [W3Schools].

escape('hello world ') = 'hello%20world%20'; 

El manejo en el lado PHP automáticamente decodificación/unescape el parámetro, la restauración de los espacios (junto con cualquier otro carácter que no puede ser la parte del valor de un parámetro cuando se envían a través de AJAX, como "=" o " &".

Dentro de PHP, si usted está deseando quitarse los espacios iniciales o finales, se puede utilizar el PHP trim() [PHP.net] función.

trim('hello world ') = 'hello world'; 
Cuestiones relacionadas