Как сохранить строку, как это в базе данных MySQL - PullRequest
1 голос
/ 07 июля 2011

Я пытаюсь сохранить эту строку:

~`@#$%^&*()_+}{":?><,./;'[]=-|\ 

используя вызов AJAX в php.Но в базе данных он сохраняется следующим образом:

~`@#$%^????

Это мой AJAX-вызов

function saveComment(timesheetId,activityId,date,comment,employeeId) {

    var r = $.ajax({
        type: 'POST',
        url: commentlink,
        data: "timesheetId="+timesheetId+"&activityId="+activityId+"&date="+date+"&comment="+comment+"&employeeId="+employeeId,
        async: false
    }).responseText;

    return r;
}

Редактировать: Исправлено отображение строк и кода.

Ответы [ 3 ]

2 голосов
/ 07 июля 2011

Вам необходимо в javascript вызвать encodeURIComponent в строке со странными символами перед отправкой на сервер.

РЕДАКТИРОВАТЬ: Томалак указал лучший метод.

0 голосов
/ 07 июля 2011

jQuery поддерживает объект в качестве параметра данных в запросах Ajax.Это также автоматически выполняет кодировку URL:

$.ajax({
  type: 'POST',
  url: commentlink,
  data: {
    timesheetId: timesheetId, 
    activityId:  activityId, 
    date:        date, 
    comment:     comment, 
    employeeId:  employeeId
  },
  success: function (data) {
    alert(data);
  }
});

Кроме того, вы никогда не должны использовать синхронные запросы Ajax.Всегда работайте с функциями обратного вызова.

0 голосов
/ 07 июля 2011

Если вы хотите поместить переменную 'text' в данные, перед этим вы должны выполнить ее через $ .URLEncode (text); как таковой, символ '&' в тексте вводит новый параметр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...