2013-04-12 6 views
2

저는 현재 AJAX를 통해 티켓을 구매하기위한 여러 단계를 거친 항공사 예약과 같은 단계를 수행하는 시스템을 설계하고 있습니다. 따라서 index.php 파일이로드 된 유일한 파일이며 페이지가 AJAX를 통해 div 메인에로드됩니다.AJAX를 통해 PHP 변수 전송하기

시스템은 정상적으로 작동하지만 이전에 입력 한 데이터를 기반으로 후속로드 된 페이지에서 변수가 전달되도록해야합니다. 예 :

사용자 이름, 국가 등 사용자가 입력하는 양식이 1 페이지에 있습니다. 제출을 클릭하면 버튼이 AJAX 요청을 트리거하고 결과는 페이지 2의 내용이고 div에로드됩니다. 그러나 페이지 2에는 1 페이지의 값으로 채워진 변수가 있어야합니다. 새로운 데이터와 다른 제출 버튼이있는 또 다른 폼이 필요합니다. 클릭하면 AJAX를 통해 1 페이지와 2 페이지에 변수가 들어있는 페이지 3이 요청됩니다.

이렇게하는 것이 가장 현명한 방법은 무엇입니까? PHP 세션을 사용 하시겠습니까? $ .get 또는 $ .post을 통해 전달 하시겠습니까?

나는 당신의 의견을 요청합니다.

대단히 감사합니다.

+0

각 페이지마다 다른 데이터를 사용하고 있고 아약스를 사용하는 경우 매번 제출 된 값을 js 변수에 저장하고 나중에 사용하는 것이 어떻습니까? 좀 더 궁금한 점이 있으면 여기에 아약스를 구현하는 방법은 무엇입니까? js 라이브러리를 사용하고 있습니까? – redDevil

+0

jQuery를 사용하고 있습니다. 하지만 js에 이러한 변수를 저장할 수는 없습니다. 한 단계에서 데이터 및 데이터베이스와 여러 가지 HTTP 및 XML 요청을 처리하여 최종 데이터를 구문 분석하기 때문입니다. 그 문제에 대해 PHP를 사용하고 있으므로 (처리 도구가 이미 완료되었습니다.) PHP를 사용하면 * 내 서비스를 빠르게 수행 할 수 있습니다. –

+0

그래서 page2 데이터는 page1 데이터뿐만 아니라 백엔드의 page1 데이터에서 처리가 이루어지는 지에 따라 다릅니다. 그렇다면 PHP 스크립트에서 필요한 데이터를 준비하고 응답으로 ajax 호출에 전달할 수 있습니다 (json을 사용하여 데이터를 처리 할 수 ​​있음). js를 사용하여 page2의 필드를 준비하고 표시합니다. ... – redDevil

답변

8

것은 당신이 jQuery를 같은 라이브러리를 사용하는 경우 - 가장 쉬운 옵션입니다 POST로 변수를 전달하거나 매개 변수를 얻기 위해, 참조 :

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
    }).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

당신은 type을 변경할 수 있습니다 예를 들어 http://api.jquery.com/jQuery.ajax/

필요에 따라 GET 또는 POST가되며 data 키는 전송하려는 데이터를 보유해야합니다. JS에 JSON으로 PHP는 데이터를 전달하는 방법에

(JSON 형식으로), passing php variable

1

내가 jQuery를의

$.post 

옵션에 갈 것입니다 참조하십시오. http://api.jquery.com/jQuery.post/ 모든 변수를 PHP 스크립트에 전달하고 PHP 스크립트가 모든 변수 (새 변수 + 게시물의 변수)를 채우고 div의 새 내용을 생성하도록합니다. 전송해야하지만 방문자에게 표시되지 않도록하려면 숨겨진 필드를 사용하여 전송하십시오. BTW :

serialize() 

http://api.jquery.com/serialize/ 그들은 마법처럼 함께 작업 사용, jQuery를 통해 형태로 모든 입력의 내용을 얻을 수 있습니다!

+0

의견이없는 downvote는 무엇입니까? – Borniet

+0

숨겨진 필드는 브라우저에 표시되지 않지만 사용자는 계속보고 수정할 수 있습니다. 필요한 경우. – redDevil

+0

"변경 가능하지 않아야하는 정보가있는 경우에도 세션 변수에서 설정할 수 있습니다. – Borniet

관련 문제