2012-04-16 4 views
0

다른 양식이있는 팝업 페이지가있는 양식이 있습니다. 해당 팝업 양식에서 모든 필드를 채우고 숨겨진 필드를 통해 기본 상위 폼의 단일 필드에 저장하려고합니다. 부모 폼이 제출되면 PHP를 통해 숨겨진 필드를 통해 모든 필드를 가져올 수 있습니다. jquery로 어떻게 할 수 있습니까? 팝업 폼에서 모든 필드를 가져 와서 숨겨진 필드에 json 문자열로 저장할 수 있습니까? 다음 PHP에서 모든 jquery 문자열을 개체로 변환하여 모든 양식 값에 쉽게 액세스 할 수 있습니까? 그렇다면 어떻게하면 팝업 창에서 모든 필드를 가져 와서 json 문자열로 바꿀 수 있습니까? 아니면 더 좋고/더 쉬운 방법이 있습니까?Jquery를 사용하여 양식 데이터를 숨겨진 필드에 저장 하시겠습니까?

+0

,이 방법은 데이터의 형식은 내부에 정말 그러나 너는 그 것처럼 보인다. gh 팝업입니다. – Dale

+0

@Dale 미안하지만 내가 실제로하고있는 것입니다. jquery UI의 모달을 사용하여 숨겨진 div에 양식을 래핑하고 대화 상자 작업을 호출합니다. 하지만 여전히 양식을 제출 한 후에 부모 데이터 형식의 숨겨진 변수에 양식 데이터를 저장하면 어디서나 모든 데이터를 쉽게 얻을 수 있습니까? 그것은 Json 일 필요는 없지만 가장 쉬운 방법이라고 생각했습니다. – John

+0

메탈 개구리가 너에게 +1 +1 내 마음을 읽었다. – Dale

답변

5

는 게시물에 대한 입력으로 양식을 캡처하려면 :

당신은 양식을 .serialize() 싶다.

$('input').val($('form').serialize()); 

그런 다음 PHP에서는 parse_str()을 다시 배열로 분할합니다.

또한 이처럼 필드 데이터를 전달하는 것보다 더 좋은 해결책이있을 수 있지만, 구현에 지장이 있다면 아마도 이러한 방법 일 수 있습니다.

는 PHP의 데이터를 수집, 모달로 양식을 열려면 : PHP에서

// You can set this to not open by default and bind the opening to a button, or a link, etc... 
$('form').dialog({ 
    modal: true 
}); 

는 양식이 정상적으로 $_POST에 포함됩니다. 당신이 당신의 페이지에이 방법으로 값을 추가하는 경우

$(".innerForm input").each(function() { 
    $(".parentForm").append("<input type='hidden' name='"+$(this).attr("name")+"' value='"+$(this).val()+"'"); 
}); 

것은 다음 그냥 그들이 것처럼 액세스 할 수있을 것입니다 :

print_r($_POST); 
0

하나 개의 아이디어는 다음과 같이 필드를 만들 수 jQuery를 사용하는 것 정상 부분은 단순히 모달 (?) 팝업 형태로 사용된다 사업부에서 양식 요소 중 일부를 래핑하는 더 좋은 생각이 될 수 있습니다 $ _POST

$_POST("hidden_field_name") 
+0

이것은 너무 복잡해 보입니다.이 시점에서 DOM 크기가 두 배로 늘어납니다. – MetalFrog

+0

매우 유효한 점수, @MetalFrog; 솔루션이 OP 용으로 작동한다면, 내가 보여준대로 직렬화하도록 권장 할 것입니다. 너의 것은 훨씬 우아하지만이 접근법은 여전히 ​​누군가에게 바람직하거나 유용 할 수있다. – veeTrain

관련 문제