Подтвердить что ты не робот

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

Я использую jQuery, чтобы сделать POST в файл PHP с содержимым HTML div. Содержимое HTML содержит таблицы, входы, меньшие div и я хотел бы захватить содержимое основного DIV и отправить его в базу данных. Единственный вариант, о котором я мог думать, это метод POST, но я не знаю, могу ли я отправить ему простой HTML. Есть ли другие варианты отправки содержимого HTML из div в файл PHP, который нужно вставить в MySQL?

Спасибо.

EDIT: Теперь я могу отправлять полные HTML-данные с помощью jQuery POST. Однако мои HTML-символы из этого DIV преобразуются в специальные символы. Пример: " > " станет "& gt;" и когда это произойдет, мои данные POST ограничены тем, где появляется первый специальный символ, потому что я делаю свой ajax POST следующим образом:

var data = 'id='+ currid +'&html='+ div_html;

    $.ajax({
          type: "POST",
          url: "file.php",
          data: data,
    .......................
    .......................

Использование этого кода не является нормально, потому что div_html содержит другие "&" символов, поэтому он будет рассматриваться как другой параметр POST для отправки.

Любые обходные пути?

Еще раз спасибо.

4b9b3361

Ответ 1

Насколько вам известно, когда вы "вытащили" содержимое с чем-то вроде . 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>

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

изменить: не передавать строку в качестве параметра data​​i > в .post(), но объект, например

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

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

var data = 'id='+ escape(currid) +'&html='+ escape(div_html);

Ответ 2

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

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

Ответ 3

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

Ответ 4

jQuery.post(post_url,{ content: "John" } )
	.done(function( data ) {
		 
		 
	});