2010-09-23 9 views
5

Cercando di passare spazi con una chiamata jax.Valore di passaggio inclusi spazi su Ajax Chiama

'parola' è stata passata come 'parola' credo di si.

D'altra parte due parole devono essere inviate completamente con la chiamata.

'parola secondo', ma non è la stessa 'parola secondo'

Dovrei tagliare prima chiamata o farlo su script lato server? Come posso inviare anche spazi?

risposta

1

so che questo è un vecchio ques zione, ma vorrei sottolineare che la risposta accettata sta suggerendo una funzione che è deprecata dalla versione 1.5 di JavaScript.

Invece, si dovrebbe utilizzare encodeURI() o encodeURIComponent() per gli spazi invio e altri caratteri speciali.

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

PHP all'altra estremità gestirà automaticamente la decodifica. Questo ti lascia libero di tagliare gli spazi in cui lo trovi più pratico. Se davvero non importa tecnicamente, eliminerei gli spazi nel codice JavaScript usando la funzione trim() perché salva un po 'di larghezza di banda della rete e facilita leggermente il carico del server tagliando il lato client.

0

Il modo più semplice, credo, è quello di encodeURIComponent stringa in JavaScript prima di inviare XMLHttpRequest, e quindi urldecode in PHP

+1

urldecode viene eseguito automaticamente – zerkms

4

Per consentire un parametro per includere spazi, ecc voi vorrà utilizzare la funzione javascript escape() [W3Schools].

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

La movimentazione sul lato PHP automaticamente decodifica/unescape parametro, ripristinando gli spazi (insieme ad altri caratteri che non possono essere parte di valore di un parametro quando inviato tramite AJAX, come "=" o " &".

In PHP, se si vogliono togliere eventuali spazi iniziali o finali, è possibile utilizzare il PHP trim() [PHP.net] funzione.

trim('hello world ') = 'hello world'; 
Problemi correlati