jQuery отправляет данные HTML через POST

, я думаю, самый правильный человек, который предложил нормальный вариант - это GigolNet Gigolashvili, но я хочу предложить еще более красивый вариант. Проверьте это

$(document).on('click', '.fieldWrapper > label', function(event) {
    event.preventDefault()
    var n = $( event.target ).parent().find('input:checked').length
    var m = $( event.target ).parent().find('input').length
    x = n==m? false:true
    $( event.target ).parent().find('input').each(function (ind, el) {
        // $(el).attr('checked', 'checked');
        this.checked = x
    })
})
22
задан VolkerK 3 July 2009 в 12:21
поделиться

3 ответа

Насколько вам известно, если вы «вытащили» содержимое с помощью чего-то вроде .html () , это просто строка. Вы можете проверить это с помощью

<html> 
  <head>
    <title>runthis</title>
    <script type="text/javascript" language="javascript" src="jquery-1.3.2.js"></script>
    <script type="text/javascript">
        $(document).ready( function() {
            var x = $("#foo").html();
            alert( typeof(x) );
        });
    </script>
    </head>
    <body>
        <div id="foo"><table><tr><td>x</td></tr></table><span>xyz</span></div>
    </body>
</html>

Текст предупреждения - строка . Пока вы не передаете его синтаксическому анализатору, в нем нет никакого волшебства, это строка, как и любая другая строка.
Нет ничего, что мешает вам использовать .post () для отправки этой строки обратно на сервер.

edit : Не передавайте строку в качестве параметра data в .post (), но объект, такой как

var data = {
  id: currid,
  html: div_html
};
$.post("http://...", data, ...);

jquery, будет обрабатывать кодировку параметров.
Если вы (по какой-либо причине) хотите сохранить свою строку, вам нужно закодировать значения с помощью чего-то вроде escape () .

var data = 'id='+ escape(currid) +'&html='+ escape(div_html);
45
ответ дан 29 November 2019 в 04:23
поделиться

Если вы хотите отправить произвольный объем данных на свой сервер, POST - единственный надежный способ сделать это. GET также возможен, но клиенты и серверы допускают только ограниченную длину URL-адреса (примерно 2048 символов).

1
ответ дан 29 November 2019 в 04:23
поделиться

Я не понимаю, почему у вас не должно быть возможности отправлять html-контент через сообщение.

Если у вас возникнут какие-либо проблемы, вы, возможно, можете использовать какое-то кодирование / декодирование - но я не думаю, что вы это сделаете.

1
ответ дан 29 November 2019 в 04:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: