programing

jPOST를 통해 HTML 데이터 전송 쿼리

cafebook 2023. 7. 27. 22:17
반응형

jPOST를 통해 HTML 데이터 전송 쿼리

저는 div의 HTML 내용으로 PHP 파일에 POST를 하기 위해 jQuery를 사용하고 있습니다.HTML 컨텐츠에는 테이블, 입력, 더 작은 div가 포함되어 있으며, 메인 DIV의 컨텐츠를 파악하여 데이터베이스로 보내고 싶습니다.제가 생각할 수 있는 유일한 방법은 POST 방법인데, 그것과 함께 일반 HTML을 보낼 수 있을지 모르겠습니다.div에서 PHP 파일로 HTML 콘텐츠를 전송하여 MySQL에 삽입할 수 있는 다른 옵션이 있습니까?

감사해요.

편집: 이제 jQuery의 POST로 전체 HTML 데이터를 전송할 수 있습니다.그러나 그 DIV의 HTML 문자는 특수 문자로 변환됩니다.예: ">"는 ">"가 되고, 이 경우 Ajax POST를 다음과 같이 수행하기 때문에 첫 번째 특수 문자가 나타나는 위치로 POST 데이터가 제한됩니다.

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

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

div_html에 다른 "&" 문자가 포함되어 있기 때문에 이 코드를 사용하는 것은 문제가 되지 않으므로 전송할 다른 POST 매개 변수로 간주됩니다.

해결 방법이 있습니까?

다시한번 감사합니다.

일단 당신이 .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: 문자열을 매개 변수 데이터로 .post()에 전달하지 않고 다음과 같은 개체로 전달합니다.

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

jquery는 매개 변수의 인코딩을 처리합니다.
어떤 이유로든 문자열을 유지하려면 이스케이프()같은 것으로 값을 인코딩해야 합니다.

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

저는 당신이 왜 게시물을 통해 html 콘텐츠를 보낼 수 없는지 모르겠습니다.

문제가 발생하면 인코딩/디코딩을 사용할 수 있지만 그렇게 할 것 같지는 않습니다.

서버에 임의의 양의 데이터를 전송하려는 경우 POST가 신뢰할 수 있는 유일한 방법입니다.GET도 가능하지만 클라이언트와 서버는 제한된 URL 길이(약 2048자)만 허용합니다.

언급URL : https://stackoverflow.com/questions/1078909/jquery-send-html-data-through-post

반응형