У меня действительно запутанная проблема. У меня есть PHP-скрипт, который опрашивает другой PHP-скрипт через Prototype. Теперь, когда я опрашиваю эту страницу один раз, все в порядке, и все отвечает нормально, но когда я опрашиваю второй раз, он возвращает странный ответ.
У меня есть фрагмент текста:
blah £ £
Теперь, когда это происходит через Prototype, он кодирует строку правильно, используя функцию escape. Полный код отображается здесь (переменная escape_function - id_opt ['escape_function']):
escape_function: escape, // or encodeURIComponent
var new_text = id_opt['escape_function']($F(id + '_edit'));
var params = 'id=' + id + '&content=' + new_text;
if(id_opt['type'] == 'select') {
params += '&option_name=' + $(id + '_option_' + new_text).innerHTML;
}
var ajax_req = new Ajax.Request(
id_opt['save_url'],
{
method: 'post',
postBody: params,
onSuccess: function(t) { alert(t.responseText); EditInPlace._saveComplete(id, t); },
onFailure: function(t) { EditInPlace._saveFailed(id, t); }
}
);
Опрошенная php-страница сохраняет информацию (фрагмент текста) в БД и отвечает текстом. Затем Prototype устанавливает содержимое div для возвращаемого текста.
Когда я снова отправляю его, все в порядке, пока не появится предупреждение (t.responseText); когда прототип показывает несколько неизвестных символов вместо & pound ;. Самое странное, что информация в поле базы данных по-прежнему бла £ £ (что правильно), но прототип отвечает бла (?) (?) (Символы (?) - это неизвестные разделители символов).
Я пришел к выводу, что PHP отображает правильную информацию, но по какой-то причине прототип собирает неверную информацию ... но между ними ничего не поделаешь, что меня действительно запутало. Будучи новичком в прототипе, я не настолько хорош в решении этой проблемы.
Спасибо за любую помощь,