2010-06-08 3 views
1

모든 폼 요소를 데이터 속성에 추가하지 않고 $ _POST 변수에 액세스 할 수 있습니까?jQuery.ajax()를 사용하여 POST 변수 보내기 및 사용

Ajax 호출 :

$.ajax({ 
     type: "POST", 
     url: "ajax/user.php", 
     data: {**data**}, 
     success: this.saveUserResponse 
    }); 

액세스 변수 :

if(isset($_POST['saveUser']) && $_POST['saveUser']){ 
    $user = $_POST['username']; 
    ... 
    ... 
    exit; 
} 

또는 내가 좋아하는, 데이터 속성에 모든 양식 요소를 추가해야합니까 :

var userId = $('#userId').val(); 
$.ajax({ 
     type: "POST", 
     url: "ajax/user.php", 
     data: {user : userId, etc... }, 
     success: this.saveUserResponse 
    }); 

감사 당신의 도움을 위해서

답변

3

양식에 .serialize() 메서드를 사용할 수 있습니다.

$.ajax({ 
     type: "POST", 
     url: "ajax/user.php", 
     data: $("#formid").serialize(), 
     success: this.saveUserResponse 
    }); 

Help with Jquery and multiple forms on a page을 참조하십시오.

jQuery Form plugin을 사용하면이 작업을 훨씬 간단하게 만들 수 있습니다. 이를 사용하여 HTML로 일반 양식을 만들고 (이미 가지고있는) method="POST"action="ajax/user.php"을 사용하여 설정 한 다음로드시 $("#formid").ajaxForm(this.saveUserResponse)으로 전화하십시오. 이것은 모든 것을 설정하고 자바 스크립트가 비활성화되어있을 때 (대부분의 초보적인 형태로) 사용할 수있는 추가적인 장점이 있습니다.

+0

링크를 게시 해 주셔서 감사합니다. 매우 도움이된다! – Kel

2

jQuery는 명시 적으로 서버에 전달한 데이터 만 보내 게됩니다.

$('form').serialize()을 전달하여 모든 양식 요소의 값을 전달할 수 있습니다.

+0

대단히 감사합니다! – Kel

관련 문제