$ .post를 통해 JavaScript 객체를 PHP 스크립트로 보낼 수있는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1499137

문제

내 페이지에 데이터 테이블이 있습니다. 열은 "시작", "끝", "댓글"및 "옵션"입니다. 옵션 열에는 행을 삭제하는 버튼과 테이블 행을 편집 할 수있는 버튼이 있습니다. 이를 통해 "start", "end"및 "comment"의 값이 변경 될 수 있습니다. 다시 클릭하면 편집 과정이 완료됩니다. 마지막으로 테이블에 다른 행을 추가하는 방법이 있습니다. 이 모든 것은 예상대로 작동합니다.

하단에 버튼을 추가하여 테이블의 데이터에서 배열을 생성하고 싶습니다. 이는 다음과 같이 보입니다 (JSON으로 순수하게 표시 할 수 있도록 : 필요하지 않음) : :

[
    {
        "start"     :"2009/08/01",
        "end"       :"2009/08/08",
        "comment"   :"an example date.",
    },
    {
        "start"     :"2009/07/01",
        "end"       :"2009/07/08",
        "comment"   :"another example date, a month earlier.",
    },
    {
        "start"     :"2000/07/01",
        "end"       :"2000/07/08",
        "comment"   :"another example date, a year earlier. You get the idea.",
    }
]

배열을 구축하는 데 어려움이 너무 많아서는 안되지만 일단 있으면 어떻게 백엔드 PHP 스크립트에 게시 할 수 있습니까 (이를 사용하여 사용합니다. put_csv() 데이터를 파일에 작성하려면)? 이상적으로는 유효성 검사를 허용하기 위해 배열 형식의 서버 측면 이용 가능합니다.

필요한 경우 jQuery를 사용하게되어 기쁩니다.

도움이 되었습니까?

해결책

서버로 끝내는 방법은 아치를 원하는 것에 따라 다릅니다. 데이터를 처리하는 새 페이지를로드하려면 숨겨진 입력으로 일반적인 양식을 사용할 수 있습니다. 또는 처리하려는 경우 Ajax를 통해 배경에있는 경우 사용하십시오. jQuery.ajax Crasco가 말했듯이. 어느 쪽이든, 구조화 된 배열을 간단한 키/값 목록으로 변환해야합니다.

한 가지 옵션은 JSON 문서를 생성하는 것입니다 (JQuery가 기능을 제공하지는 않지만 쉽게 찾을 수 있음)와 직렬화 된 문서와 함께 단일 필드를 사용하는 것입니다. 그런 다음 서버 측면에서 사용할 것입니다 json_decode 배열을 되 찾으려면. AJAX 메소드를 사용하는 경우 데이터 옵션 jQuery.ajax 전화는 다음과 같습니다.

{
    'data': '[{"start":"2009/08/01","end":"2009/08/08","comment":"an example date."},...'
}

더 나은 접근 방식은 PHP가 기본적으로 이해하는 형식으로 필드 목록으로 직렬화하는 것입니다. 그것은 당신이 특별한 일을해야한다는 것을 의미하며 $_POST['data'] 배열이 포함됩니다. 예를 들어:

{
    'data[0][start]': '2009/08/01',
    'data[0][end]': '2009/08/08',
    'data[0][comment]': 'an example date.',
    'data[1][start]': '2009/07/01',
    'data[1][end]': '2009/07/08',
    'data[1][comment]': 'another example date, a month earlier.',
    ... 
}

양식 메소드를 사용하는 경우 다음과 같은 입력 필드를 생성해야합니다.

<input type="hidden" name="data[0][start]" value="2009/08/01" />

다른 팁

나는 확실히 jQuery를 사용할 것입니다. 다음은 $ .post () 함수의 페이지입니다.

http://docs.jquery.com/ajax/jquery.post

한 가지주의 사항 중 하나는 $ .post ()가 단순화 된 $ .ajax () 함수의 래퍼라는 것입니다. Ajax를 통한 중요한 거래의 경우 다음을 사용합니다.

http://docs.jquery.com/ajax/jquery.ajax

예는 다음과 같습니다.

$.ajax({
      url: "script.php",
      global: false,
      type: "POST",
      data: ({id : this.getAttribute('id')}),
      dataType: "html",
      success: function(msg){
         alert(msg);
      }
   });
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top