2014-11-26 2 views
0

내 홈페이지를 더 체계적으로 코딩하려하고 있습니다. mysql db 쿼리로 많은 작업을해야하고 Ajax 요청을 통해 호출하려는 모든 필수 기능을 가진 모든 .php 파일을 모든 테이블에 대해 만들고 싶습니다. 서버 측Ajax 요청을 통해 PHP 함수 호출

$.ajax({ url: '/my/site', 
     data: {action: 'test'}, 
     type: 'post', 
     success: function(output) { 
         alert(output); 
        } 
}); 

상기 action POST 파라미터가 판독되어야하며 상기 방법을 가리켜 야 해당 값은 호출 예 :

따라서 난 유래 대답하여 다음 코드를 가지고

if(isset($_POST['action']) && !empty($_POST['action'])) { 
    $action = $_POST['action']; 
    switch($action) { 
     case 'test' : test();break; 
     case 'blah' : blah();break; 
     // ...etc... 
    } 
} 

내 문제 : 나뿐만 아니라 V 양식 데이터를 할당 할

ia 데이터 속성과 나는 이것을 어떻게 할 수 있는지 모른다. 로, 당신은 ajax 전화의 데이터 매개 변수가 객체를 기대

var data = $(this).serialize(); 
$.ajax({ url: '/my/site', 
     data: {action: 'test', data: data}, 
     type: 'post', 
     success: function(output) { 
         alert(output); 
        } 
}); 

매개 변수로 데이터를 지정해야합니다

var data = $(this).serialize(); 
$.ajax({ url: '/my/site', 
     data: {action: 'test', data}, 
     type: 'post', 
     success: function(output) { 
         alert(output); 
        } 
}); 
+0

는,이 질문에 대한 대답은 거의 모든 단일 PHP에서 찾을 수 있습니다은/jQuery를 아약스 자습서 쓰신 ... – Basic

답변

1

serialize()문자열과 같이 양식의 데이터를 반환합니다. 나머지 문자열과 함께 나머지 문자열을 추가 할 수 있습니다.

예 : 공식적으로

<form id="form"> 
    <input name="form_name_1" value="form_value_1"> 
    <input name="form_name_2" value="form_value_2"> 
</form> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
    var data = $('#form').serialize(); 
    data += '&action=test'; 

    $.ajax({ 
     url: '/my/site', 
     data:data, 
     type:'post', 
     success:function(output) { 
      alert(output); 
     } 
    }); 
}); 
</script> 
0

: 나는이 다음 (이 일을 일부러 단지 추측했다) 시도 당신이 개인적으로 $_POST['data']

를 통해 액세스 할 수 있습니다 키/값 쌍 등 일련의

더 -은 ECMA/자바 스크립트 사양에서 정의 나는 ... 배열 주위 HTTP의 단점을 피하기 위해 그것을에는 직렬화 JSON하는 경향이

PHP에서 다음
data: {action: 'test', data: JSON.stringify(data)} 

: 데이터가 게시 된 경우

$data = json_decode(isset($_POST['data']) ? $_POST['data'] : "{}"); 

는, 지금 복잡한 객체로 $data에 존재합니다 그렇지 않으면 $data 당신은 JSON 객체로 데이터를 게시 할 수 있습니다

0

빈 객체를 포함

$.ajax({ 
    type: "POST", 
    url: "/some/url", 
    data: JSON.stringify(jsobject), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(output){ 
     alert(output); 
    } 
}); 

그리고 PHP 스크립트에서는 json_decode을 사용하여 객체 또는 연관 배열을 가져옵니다.