2009-10-07 11 views
0

Je suis en train d'enregistrer un numéro de mobile dans le tableau MYSQL avec le format suivant "+1234987 ...." mais quand je sauvegarde le numéro le signe '+' est remplacé par un espace .jquery caractères spéciaux sauver dans mysql, php

J'utilise le code suivant:

var mobile  = $('#mobile').attr('value'); 
$.ajax({ 
type: "POST", 
url: "save_process.php", 
data: "mobile="+ escape(mobile) , 
//data: "mobile="+ mobile , 
success: function(html){ 
if (html==1){ 
$('div.saving').hide(); 
$('div.success').fadeIn(); 
} 

J'ai essayé avec et sans escape() - même résultat. Comment puis-je le faire enregistrer avec le signe '+'?

Merci

Répondre

2

"mobile =" + escape (mobile)

escape est la mauvaise fonction à utiliser pour l'encodage des paramètres URI. Il s'agit d'un système d'encodage spécial JavaScript qui ressemble un peu à l'encodage d'URL, mais ce n'est pas le cas, ni d'autres standards Web. Il diffère dans la gestion des caractères non-ASCII et, vous l'avez deviné, le signe plus.

En fait c'est presque toujours la mauvaise fonction à utiliser pour n'importe quoi et vous devriez être immédiatement suspect à chaque fois que vous le voyez. Il a été utilisé pour le codage d'URL dans les jours de Netscape, avant que encodeURIComponent ait été inventé, mais même pour alors il était complètement cassé.

"mobile="+ encodeURIComponent(mobile) 
Questions connexes