2012-11-19 2 views
1

내 데이터는 다음과 같이 보입니다. 객체는 두 개의 객체 (각각 폼의 데이터를 나타냄)가있는 객체입니다.아약스가 아닌 POST를 통해 데이터 객체를 제출하는 방법

Object {x__sf: Object, x__mx: Object} 
    x__mx: Object 
    country_id: "1" 
    input1: "" 
    input2: "" 
    ... 
    x__sf: Object 
    ... 

임시 양식을 만들어 제출해야 할 것 같습니까? 내 데이터를 반복하고 숨겨진 필드를 임시 양식에 추가하는 안전한 방법인지 확신 할 수 없습니다. 이 기능이 있습니까? 또는 더 나은 방법?

리디렉션 로직 서버가 있기 때문에 실제로이 페이지를 제출해야합니다.

$.post('/whatever.php', data); 
+2

문자열을 문자열화한 다음 서버 측에서 다시 인코딩하십시오. – adeneo

+0

임시 서식의 필드로 문자열 화 하시겠습니까? 좋은 아이디어 –

+0

$ .extend를 사용하여 객체를 확장하거나 객체에 새 속성을 추가 한 다음 보트를 뜨는 방법으로 문자열을 지정할 수 있습니다. – adeneo

답변

3

그러나 다음의 문제가 무엇인가를 접근?

서버 측 :

<?php 
// do some stuff 
print "/redirect/to.php"; 
?> 

클라이언트 측 :

$.post("/whatever.php", data, function(data) { 
    location.href = data; 
}); 

심지어 고급 :

서버 측 :

<?php 
// do some stuff 
header("Content-Type: application/json"); 
print json_encode(array(
    "success" => "/redirect/to.php" 
)); 
?> 

클라이언트 측 : 당신은 그냥 당신이 그것을 보내기 전에 데이터를 캐릭터 라인 화 할

$.post("/whatever.php", data, function(data) { 
    if (data.success) { 
     location.href = data.success; 
    } 
}, "json"); 
+2

+1, 이것이 제가 사용하고자하는 접근법입니다. 그러나 AJAX가 아닌 솔루션의 경우이 스레드는 원하는 것처럼 보입니다. http://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit – sgroves

+0

@sgroves 그 기능은 내 다차원 개체에 대한 작동합니다 생각합니다. –

0

같은 것을 할 .... 루핑 귀찮게하지 마십시오

$('form').submit(function() { 
    alert($(this).serialize()); 
    return false; 
}); 

또는 당신이 경우에있어 지역 :

var data = $("#idOfForm").serialize(); 
+0

폼이 없으며 단지 json 개체입니다. 양식을 만드는 것이 문제입니다. –

+0

ahh :) 죄송합니다 :) – Brian

0

:

$.post('/whatever.php', JSON.stringify(data)); 

를 서버 측에서, 당신은 PHP json_decode()를 사용할 필요가 기능 :

json_decode(http_get_request_body()); 
관련 문제