[英]How to assign javascript variable to ruby variable using AJAX request?
我想通過ajax請求將JavaScript變量分配給ruby變量,所以我在JavaScript函數中編寫了以下代碼:
var timezone = jstz.determine();
var encoded = encodeURIComponent('<%= groups_path%>'+'?@myActivity=' + <%=@activity.id%>+'&time_zone='+timezone.name());
$.ajax({
type: "get",
url: encoded,
dataType: "JSON",
success: function(data)
{
<%=@timezone=params[:time_zone]%>
}
});
但是它給出了GET http://0.0.0.0:3001/%2Fgroups%3F%40myActivity%3D1%26time_zone%3DAsia%2FCalcutta 404 (Not Found)
錯誤。
你那里的事情有點混亂。
您正在嘗試運行的javascript,因此我假設將在客戶端運行。 您沒有Ruby,僅在服務器端。
通常要做的是編寫Javascript,然后在視圖中呈現Javascript(這意味着它會發送到客戶端)。 您可以通過將預定義值(如路徑)命名為my_client_side_code來將其插入模板中。 js.erb 。
向服務器發出AJAX請求時,您可以從服務器向客戶端寫入響應(使用Javascript)。 這使客戶端可以評估您在服務器響應中提供的任何Javascript。 在這種情況下,您可以按通常的ERB方式使用Ruby變量。
http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html有關完整指南,您可以參考rails指南!
祝好運!
Puja,
您做錯了事,您對javascript語言和Ruby語言不太了解。
當您在瀏覽器中看到您的JS代碼時,您將看到如下所示
$.ajax({
type: "get",
url: encoded,
dataType: "JSON",
success: function(data)
{
}
});
由於<%=@timezone=params[:time_zone]%>
是Ruby代碼,它將在將html頁面呈現給瀏覽器之前運行,因此將存在靜態JS,HTML腳本將呈現給瀏覽器
首先嘗試了解Ruby和Javascript以及HTMl的流程,這樣您可以更好地進行低估
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.