4 개의 div로 연결되는 큰 형태가 있습니다. 각 div는 단계를 나타내며, 모든 것은 하나의 형태로 묶여 있습니다. 문제는 형태가 너무 커지고 있습니다.jQuery는 큰 형태의 부분을 제출합니다
그래서 새로운 필드 (그림, 텍스트, 언어)를 추가하려면이 양식을 제출할 수있는 옵션이 있는지 궁금 해서요. 내 서버에는 게시물 당 20 개의 필드가 있으며 변경할 수 없습니다. 이 설정
4 개의 div로 연결되는 큰 형태가 있습니다. 각 div는 단계를 나타내며, 모든 것은 하나의 형태로 묶여 있습니다. 문제는 형태가 너무 커지고 있습니다.jQuery는 큰 형태의 부분을 제출합니다
그래서 새로운 필드 (그림, 텍스트, 언어)를 추가하려면이 양식을 제출할 수있는 옵션이 있는지 궁금 해서요. 내 서버에는 게시물 당 20 개의 필드가 있으며 변경할 수 없습니다. 이 설정
서버 한계가 당신을 귀찮게 경우 JSON에서 폼을 직렬화 및
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
var data = $("form#myform").serializeObject();
window.location = "url?data="+encodeURIComponent(data);
서버보다
$data = json_decode($_GET["data"]);
foreach($data as $row)
{
//Do What ever you want with $row
}
또는 같은 하나의 매개 변수로이 전달할 수 있습니다 $ _POST를 사용해야하는 경우
var post_data = { data : data};
$.post('url', post_data ,function(data) {
console.log(data);
});
이것은 "파일"입력과 함께 사용할 수 있습니까? –
각 단계와 관련된 여러 양식을 만드는 것이 어떨까요?
버튼 하나를 클릭하고 모든 것을 제출하기 때문에, mutiples 폼은 버튼을 만들고 jquery를 사용하여 각각을 제출할 수 있습니다. –
모든 양식 필드를 json_encode로하면 하나의 데이터 만 게시 할 수 있습니다. : $ ('# your_form_id'). serialize() –
큰 json 배열에 필드 값을 압축하여 인코딩하고 jQuery.ajax로 게시 할 수 있습니다. 큰 단일 필드처럼 보일 것입니다. 서버 쪽에서는 디코딩 한 후 처리 할 수 있습니다. 하지만 솔직히, 어떤 종류의 서버입니까? 나는 전에 이런 종류의 제한을 들어 본 적이 없다.
다른 해결책은 서버 측 (예 : 세션 저장소)에서 양식의 상태를 복제하고 세션 저장소의 개별 필드를 업데이트하는 ajax 호출을 작성하는 것입니다. 예 : 사용자가 필드를 떠날 때 해당 단일 필드의 값을 서버에 게시 한 다음 서버가 세션 저장소의 필드 값을 업데이트합니다.
가능한 많은 다른 솔루션이있을 수 있습니다.
@Cody 대답은 꽤 잘 작동하지만, 난 파일 입력에 문제가 있었다,
이 라이브러리 http://jquery.malsup.com/form/, 좋은 작품도, 나는 변경없이 파일을 제출하고 내부 배열을 지원 할 수 있었다
JSON 입력으로 서버에 보낼 수 있습니까? –
@Murali 예, 이것이 최상의 솔루션이 될 것입니다. jSon에서 양식을 직렬화하십시오. – Burimi