2011-03-16 2 views
1

내 application.js 파일의 동적으로 생성 된 요소를 데이터베이스에 저장하려고합니다. 코드가 다음과 같이 보이겠습니까? :

$.ajax({ 
    type: "POST", 
    data: { title: 'oembed.title', thumbnail_url: 'oembed.thumbnail_url'} 
}); 

내가 빠진 것이 있습니까? oembed.titleoembed.thubnail_url에 저장하려는 값이 들어 있고 titlethumbnail이 데이터베이스 열이라고 가정합니다.

+0

이 레일입니까? 더 구체적으로 다시 조사하십시오. 그것이 레일 인 경우 모델 + 컨트롤러에 대해 자세히 설명하십시오. –

+0

네, 레일입니다 –

+0

정말 내 모델과 컨트롤러를 알아야합니까? –

답변

0

첫 번째 문제는 데이터가 문자열이라는 것입니다. 그렇지 않으면, 그냥 레일에서 그것을 만드는 방법이 쉬울 것 -의 제거 '나는 새 DB 객체에 몇 가지 사용자가 제공 한 데이터를 통합해야 가정거야

$.ajax({ 
    type: "POST", 
    data: { title: oembed.title, thumbnail_url: oembed.thumbnail_url} 
}); 
+0

'url :'설정이 필요합니까? 그게 뭐야? –

+0

예. 그것은 서버상의 서비스를 가리켜 야합니다. 비동기 클라이언트 호출 개념에 익숙하십니까? – Slappy

+0

이론적으로는 페이지를 다시로드하지 않고 서버에서 데이터를 검색하는 방법이지만 실제로 이러한 작업을 구현하는 데는 어려움이 있습니다. 서버의 서비스는 무엇을 의미합니까? –

0

을 인용한다.

당신이 완전히 사용자가 제공 한 데이터를 사용하는 경우, 당신은 serialize() 방법 (서버에서 생성 된 물건에 대한 사용 숨겨진 필드)를 사용할 수 있습니다 :

jQuery.ajax({ 
    url: '/path/to/whatever', 
    data: $('#MyForm').serialize(), 
    type: 'POST' 
}); 

아니면 사용할 수를 jQuery Form Plugin - 그것은 ' 사용자 제공 데이터와 서버 생성 데이터를 쉽게 결합 할 수 있습니다. 예를 들어 :

$('#MyForm').ajaxForm({ 
    //Hardcoded/server-generated stuff goes in here 
    //(and will be added to the data from the form inputs): 
    data: {title: oembed.title}, 
    type: 'POST' 
}); 

ajaxForm() 기능은 형태와 그 기본값을 설정하고 사용자가 제출 버튼을 명중 Ajax 호출을 전송한다 (참조 : ajaxSubmit()을).

레일 측면에서 사용자가 양식을 정상적으로 제출 한 것과 똑같이 작동해야합니다 (리디렉션 또는 페이지 렌더링에 대한 호출이없는 상태 코드/메시지로 응답하고 싶을 수도 있음).

희망이 도움이됩니다.

PS : 예를 들어, AJAX 호출에서 data: oembed을 사용할 수있는 것처럼 보입니다. 이것은 모두 oembed의 속성을 제출합니다 ...

+0

hmm 내 구체적인 사례는 다음과 같습니다. 동의하는 것은 사용자의 동영상 URL이며 해당 URL을보기에 대한 링크로 추가하는 것입니다. 그런 다음 embedly API를 사용하여 해당 링크를 찾고 삽입 된 비디오, 미리보기 이미지 및 제목으로 변환합니다. 또한 사용자가 제목을 편집 할 수있게하고 싶기 때문에이를 저장해야합니다. 첫 번째 옵션이 마음에 들지만, 어떤 URL을 전달해야할지 모르겠습니다. 또한, 나는 비디오 URL이 숨겨진 필드 여야한다는 것이 아니라 저장하고 싶은 모든 것이 있다고 가정하고 있습니다. 그러나 확실하지 않습니다. 또한 링크를 찾아 동영상으로 전환하는 작업은 Embedly와 오랜 시간이 걸리므로 다르게 처리하고 싶을 수도 있습니다. –

+0

또한 양식에서'.serialize()'를 사용하면 jQuery에 의해 값이 동적으로 생성되는 숨겨진 필드의 값을 양식에서 어떻게 알 수 있습니까? –

+0

@Justin - AJAX 호출의'url :'옵션은 앱의 create 액션에 대한 URL 일뿐입니다. 동영상 URL은 양식의 입력에서 사용자가 올 것입니다. 다른 텍스트 입력을 사용하여 기본 제목을 덮어 쓸 수 있습니다 (선택 사항으로 표시 하시겠습니까?). 숨겨진 필드는 페이지가로드 될 때 서버가 생성 한 정보를 저장하는 데 사용됩니다 - 나는 그게 무엇인지 생각할 수는 없지만, 단지 그것을 언급했습니다 ... –

관련 문제