2010-05-28 4 views
0

양식이 있습니다. AJAX GET 요청을 통해 유효성을 검사하려고합니다.양식 직렬화 문제

그래서 GET 요청 데이터에 필드 값을 보내려고합니다.

$('#uxMyForm').serialize(); 

문제가 알려지지 않은 부분을 반환하고 있습니다. 전에 serialize를 사용했습니다. 이것은 완전히 bizzare입니다.

직렬화의 반환 값은 내가 이것을 사용하는 방법을 몰라

actionsign_upcontrollersitedataauthenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6%2FQ0zLeQqwIahJZJfE%3D&customer%5BuxName%5D=&customer%5BuxEmail%5D=&customer%5BuxResidentialPhone%5D=&customer%5BuxMobilePhone%5D=&customer%5BuxDateOfBirth%5D=&customer%5BuxAddress%5D=&customer%5BuxResidentialStatus%5D= 

입니다.

감사

갱신 :

내 질문에 내가 그런 요청을 처리 할 방법입니까? 이거? 내가 무엇을 관찰 할 때 내가

render :text => params 

를 다음을 수행

puts params[:data][:customer][:uxName] 

내 GET 요청 트리거는 작업 방식에 .. 위의 JQuery와 선이 요청을 생성이

$.get('/site/sign_up',{data : $('#uxMyForm').serialize() }, function(data){ 
alert(data); 
}); 

처럼 보인다 GET, 방화범에 보내다 PARAMS

**data** authenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6%2FQ0zLeQqwIahJZJfE%3D&direct_customer%5BuxName%5D=&direct_customer%5BuxEmail%5D=&direct_customer%5BuxResidentialPhone%5D=&direct_customer%5BuxMobilePhone%5D=&direct_customer%5BuxDateOfBirth%5D=&direct_customer%5BuxAddress%5D=&direct_customer%5BuxResidentialStatus%5D= 
내가 경고에 인쇄

반환 값은 양식 자체가 좀 어때

actionsign_upcontrollersitedataauthenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6%2FQ0zLeQqwIahJZJfE%3D&direct_customer%5BuxName%5D=&direct_customer%5BuxEmail%5D=&direct_customer%5BuxResidentialPhone%5D=&direct_customer%5BuxMobilePhone%5D=&direct_customer%5BuxDateOfBirth%5D=&direct_customer%5BuxAddress%5D=&direct_customer%5BuxResidentialStatus%5D= 
+0

그것은'이름 1 = 값 1에서 서식을 것하는 것은, 이것이 당신이 .serialize'에서()'원하는 NAME2 = value2' 형식 ... 브라우저 (GET 요청)에서 쿼리 문자열과 동일 &, 당신의 경우 제출 코드를 게시하면 실제로 무엇을 보았는지 쉽게 알 수 있습니다. –

+0

가 업데이트되었습니다. 친절하게 – ZX12R

답변

0

있습니다. 루비 온 레일즈에 대한 경험이 없으며 새로운 흥미 진진한 방식으로 양식을 작성한다면 authenticity_token과 customer라는 두 가지 형식 요소 만있는 것처럼 보입니다. 여기서 customer는 항목의 배열입니다. 이것은 당신이 게시 된 데이터입니다,하지만 난 그것을 urldecode 될것 일부 바꿈에 넣어 : 당신이 무엇을 할 수 있는지

authenticity_token=oRKIDOlPRqfnRehedcRRD7WXt6/Q0zLeQqwIahJZJfE= 
&customer[uxName]= 
&customer[uxEmail]= 
&customer[uxResidentialPhone]= 
&customer[uxMobilePhone]= 
&customer[uxDateOfBirth]= 
&customer[uxAddress]= 
&customer[uxResidentialStatus]= 

배열에 양식을 직렬화 및 jQuery를 아약스 요청을 사용하여 전송하기 전에 그것을 청소하는 것입니다. 나는 그물 RUNAT 서버 폼 요소를 직렬화했을 때 한 번 비슷한 일을했다 :

var serializedData = $(form).serializeArray(); 
for(i=0; i < serializedData.length; i++) 
{ 
    // For each item in the array I get the input-field name after the last $ character 
    var name = serializedData[i].name; 
    var value = serializedData[i].value; 
    if(name.indexOf('$') != -1) 
     name = name.substr(name.lastIndexOf('$')+1); 
    serializedData[i].name = name; 
} 
var ajaxPostData = $.param(serializedData); 

그래서 blabla $ ABCPlaceHolder $ tbxEmail 내가 배열에 tbxEmail을 얻었다의 instad. 고객 배열 대신 uxName, uxEmail 등을 얻기 위해 동일한 작업을 수행 할 수 있습니다.

그러나 내 경험에 비추어 볼 때 이것이 최상의 솔루션이 아닐 수 있습니다. 아마도 HTML 양식을 다르게 빌드하기 위해 변경할 수있는 설정이 있습니까?

업데이트 : 배열로 고객 :

내가하지만, 내가 찾은 인터넷 검색 후 당신이 당신의 PARAMS를 사용하여 값을받을 수 방법 루비 작품 모르겠어요.

PARAMS : 고객이 값 I가 당신에게 데이터를 수신하는 방법에 뭔가를 알려줍니다 희망

{:uxName => "", :uxEmail => "" } 

의 배열을 포함해야합니다. 아마 (경고 - 야생 추측!) 이런 식으로?

params[:customer][:uxName] 
+0

을 제안합니다. 내 문제는 게시 된 값 중 하나에 액세스 할 수 없다는 것입니다. – ZX12R

+0

시도 ... 아니 행운 ... 길 제안 u는 일반적으로 게시물 요청에 대한 작동 ...이 경우에는 nil을 반환합니다 ... 심지어 params [: 데이터] [: 고객] [: uxName] .. 시도 – ZX12R

+0

그래, 전체 아약스 요청을 보낼 수도있어 어디서나 오류를 찾을 수 있습니다. 우리는 실제로 어떤 것이 실제로 내가 추측하는 페이지로 전송되는지 확신 할 수 없습니다 :) – becquerel