2012-08-22 3 views
2

나는 websocket에서 호출 된 하나의 스크립트로 작업하고 있습니다. 여기 Ruby 변수에 javascript 변수를 할당합니다.

코드

function set_color(val1,val2) 
{ 

    <%background_color_id = %> 
    var obj_color_id = '<%=background_color_id ='+val2+'%>' ; 
    console.log(obj_color_id) 
} 

에게, 그것은 자바 스크립트에 변수를 전달

코드의이 페이지는 html.erb이며, 그 자바 스크립트 변수에서 내가 그것을 변수 루비에 할당 할 콘솔 로그에서 결과는 내가 콘솔 로그에서 결과는입니다 var obj_color_id = '<%=background_color_id ='val2'%>' ;

을 전달하는 경우 +val2+

입니다

나에게 당신은이 작업을 수행 할 수 없습니다

+0

try var obj_color_id = 'background_color_id <%='val2'%>'; –

답변

0

사실, 간단한 솔루션입니다 :

function set_color(val1,val2) 
{ 
    var bkgdColorId = "<%= background_color_id %>"; 
    var obj_color_id = bkgdColorId; 
    console.log(obj_color_id) 
} 

2 :

1은 서버 측 코드를 통해 값을 할당 (클라이언트 측 이벤트에서 서버에 할당하는 경우) 크게이 과정을 촉진 할 몇 가지 jQuery를 사용

function set_color(val1,val2) 
{ 
    /** pseudo-code **/ 
    on-click-event: makeAjaxCallToServer(){ 
    urlForWebService, { color: val2 } 
    } 
} 

: - (또는) 클라이언트 측 코드에서 값을 지정합니다.

+0

나는 아약스 호출을 통해 해결했지만 클라이언트 측 javasscript 값을 서버 변수로 전달하는 방법이 있습니까? 클라이언트 (웹 브라우저)가 자바 스크립트 (변수)를 평가하기 전에 모든 서버 측 코드가 처리되므로 불가능합니다. <% = background_color_id = '+ val2 +'%>' –

+1

아니요. 그러나 양식 게시 (또는 가져 오기)와 같이 작동하고 자바 스크립트가 게시하는 값을받은 서버 측 웹 서비스 (PHP 파일)를 만들 수 있습니다. 이 작업을 수행하거나 서버에 양식을 제출하려면 AJAX 호출을 사용합니다. –

3

변수 루비 자바 스크립트 변수를 지정 도와주세요. Javascript가 클라이언트 측을 실행하고 Ruby가 서버 측을 실행합니다.

+0

이 페이지는 html.erb 페이지이며 javascript 변수를 루비 변수로 사용하려고합니다. –

+0

이것을 수행 할 수 없습니다. 클라이언트 (Javascript)의 데이터를 서버 (Ruby)에 할당하려면 Ajax와 같은 요청을 통해 데이터를 보내야합니다. – oldergod

1

당신은 그렇게 할 수 없습니다. 모든 값 <%=은 서버 측에서 번역되며 그 값은 클라이언트로 전송됩니다. 클라이언트 측에는 루비가 없습니다. 일부 데이터를 서버에 전달하려면 websocket 또는 http 서버에 요청을 보내야합니다. 나는 (당신의 질문 잘 표현한되지 않고, 불행하게도) 코드를 이해한다면

+0

이 페이지는 html.erb 페이지이고 자바 변수를 루비 변수에 넣으려고합니다 –

+0

제가 말했듯이, 당신은 이것을 할 수 없습니다. 그냥 websocket 또는 서버에 게시 요청을 통해 변수를 보내십시오. – Ch4rAss

관련 문제