[英]Pass JavaScript variables to Rails controller
我正在使用Rails版本3.2.6,並且試圖將Javascript變量傳遞給另一個頁面“ Test10”。 我在視圖中有以下代碼:
<script>
var message = "hello world!";
</script>
<%= link_to "Go!", Test10_path(), :with => "'message='+ message" %>
該參數未傳遞給Test10。 我在Test10控制器中具有以下內容:
def Test10
@hello = params[message]
end
這是將Javascript變量傳遞到我的rails控制器的正確方法嗎? 它不起作用。 我將不勝感激任何指針。 謝謝!
<%= link_to "Go!", Test10_path(), :id => "my_link" %>
<script>
var message = 'test';
var url = $('#my_link').attr('href') + '?message=' + message;
$('#my_link').attr('href', url);
</script>
這樣的事情應該起作用。 盡管在大多數情況下,最好通過使用表單來傳遞參數...
你做不到 JavaScript和Ruby代碼在完全不同的上下文中執行,客戶端上的JavaScript和服務器上的Ruby。
通常,如果要將值從客戶端傳遞到服務器,則需要以某種形式或作為查詢字符串的一部分將其回發,或者通過AJAX進行。
在您的特定示例中,您將必須編寫一些JavaScript,該JavaScript選擇錨標記並將message
變量的內容附加到錨標記的查詢字符串。 類似於以下內容:
<script>
var message = "hello world!";
// Select your anchor tag
var link = $('a#my-link');
// Append your message to the link's href attribute
link.attr('href', link.attr('href') + "?message=" + message);
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.