Знак плюс исчезает на стороне сервера?
Я не могу сейчас смотреть на таблицы MySQL... но я не думаю, что "+" делает это в таблицу.
Я проверил magic_guotes
и он включен. Однако magic_quotes не должен ничего делать со знаком "+", поскольку он относится только к экранированию символов, используемых базой данных.
Кроме того, я проверил мой regular expressions
на клиенте и сервере (javascript и php) и нечего убирать знаки "+".
Я также использую htmlentites()
но я не верю, что + является html-сущностью, и даже если бы это было так, это только сделало бы его более ярким, чем персонаж.
Это оставляет json_encode
, но я смог передать символы обратно клиенту перед кодированием и все еще мог видеть, что не было знака "+".
Я проверил все 5 мест и не могу определить, куда идет мой знак +... кажется, что база данных mysql возвращает пробел, где должен быть знак +.
Ajax Serialize
function ajax_serialize( form_name )
{
var return_string='',
form_elements=document.forms[form_name].elements,
iterator;
for(iterator = 0; iterator < form_elements.length; iterator++)
{
if( form_elements[iterator].name )
{
if( form_elements[iterator].type === 'checkbox' && form_elements[iterator].checked === false )
{
return_string += form_elements[iterator].name + "=0&";
}
else
{
return_string += form_elements[iterator].name + "=" + form_elements[iterator].value+"&";
}
}
}
return_string = return_string.slice( 0, -1 );
return return_string;
}
Аякс Чирикать
function interface_tweet()
{
var form_name = 'tweet',
response_div = form_name + '_response',
tw_text = new Text(form_name),
tw_message = new Message(response_div);
if( Constant.VALIDATE_ON === 1 )
{
if( !tw_text.checkEmpty() )
{
tw_message.display('empty');
return;
}
if( !tw_text.checkPattern('tweet') )
{
tw_message.display('tweet');
return;
}
}
Ajax.repeatUseAjaxObject( Constant.GATEWAY, ajax_serialize( 'tweet') + '&ajax_type=ControlTweet_add' , ajax_tweet ,'tweet_fill' );
document.getElementById( 'tweet_input' ).value='';
document.getElementById( 'tweet_response' ).innerHTML='';
}
1 ответ
Это то, что вы должны иметь
return_string += encodeURIComponent(form_elements[iterator].name) + "=0&";
а также
return_string += encodeURIComponent(form_elements[iterator].name) + "="
+ encodeURIComponent(form_elements[iterator].value)+"&";
если твой form_elements[iterator].name
не имеет каких-либо символов, которые должны быть закодированы, то вы можете удалить encodeURIComponent
для этого.