<?
if($_POST) {
exit(implode("\n", $_POST));
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(function() {
$('form').submit(function() {
$.post(location, $(this).serialize(), function(d) {
alert(d)
});
return false
})
});
</script>
</head>
<body>
<form><input name="phone" value="+8 888 888 88-88-88" />
<input name="as" value="Текст с +" />
<button>Send</button></form>
</body>
</html>
Выполните, и проблем не будет. А если просмотреть в отладчике данные передаваемые на сервер, то это будет так (важное выделено красным):
Content-Type: application/x-www-form-
urlencoded;
charset=UTF-8
phone=%2B8+888+888+88-88-88&as=%D0%A2%D0%B5%D0%BA%D1%81%D1%82+%D1%81+%2B
вот так и кодируются данные- пробелы заменяются на +, а плюс на %2B.