Отправить HTML на серверный PHP через AJAX - PullRequest
4 голосов
/ 03 декабря 2010

Я пытаюсь отправить HTML-код в форме на серверный скрипт, чтобы сохранить его в базе данных. Я отправляю строку запроса, и каждый раз, когда HTML содержит символ, такой как запятая или амперсанд, остальная часть HTML в этот момент усекается.

Заранее спасибо!

Ответы [ 2 ]

7 голосов
/ 03 декабря 2010

При отправке запроса необходимо правильно кодировать параметры URL:

$.ajax({
    url: 'foo.php',
    data: { html: '<html>You can use whatever characters you want here</html>' },
    type: 'GET',
    success: function(result) {

    }
});

или

$.ajax({
    url: 'foo.php',
    data: { html: $('#someTextFieldWhichMightContainHtml').val() },
    type: 'GET',
    success: function(result) {

    }
});

Теперь вы можете спокойно читать переменную html в своем PHP-скрипте: $.GET["html"].

Полагаю, сейчас ваш код выглядит примерно так:

$.ajax({
    url: 'foo.php?html=' + $('#someTextField').val(),
    type: 'GET',
    success: function(result) {

    }
});

Я бы порекомендовал вам никогда не использовать конкатенации строк и всегда использовать хэш data.

0 голосов
/ 03 декабря 2010

Как сказал Дарин Димитров, его нужно кодировать. Я использую эти функции для кодирования и декодирования в JavaScript.

function urlencode(str) {
    return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

function urldecode(str) {
    return unescape(str.replace(/\+/g, ' '));
}

По-моему, из поста в phpbuilder.

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