我的ruby / rails应用程序有点问题。
我想从我选择的项目中获取ID并与他们进行查询。
在我的_form中我有:
<%= f.label "Stock", for: "text" %>
<%= f.select :stock_id, @stocks_list, {}, onchange: 'ShowUser(this.value)' %>
我的JavaScript代码是:
function ShowUser(str){
alert("You select item with value: " + str);
}
我需要在我的控制器上捕获'str'值并动态显示所选sotck的信息(通过查询)。
更新
当我选择一个项目时,只需在弹出窗口中显示该消息,而不是其他内容。我的完整功能是
function ShowUser(str)
{
alert("You select item with value: " + str);
JQuery.ajax( {
data: {valor: str},
type: 'post',
url: "/orders/create",
});
}
,控制台日志为
Started GET "/orders/new" for 127.0.0.1 at 2014-11-25 16:54:39 -0600
Processing by OrdersController#new as HTML
Staff Load (0.2ms) SELECT `staffs`.* FROM `staffs`
Provider Load (0.2ms) SELECT `providers`.* FROM `providers`
Stock Load (0.2ms) SELECT `stocks`.* FROM `stocks`
Rendered public/templates/menu.html.erb (1.0ms)
Rendered orders/_form.html.erb (6.8ms)
Rendered orders/new.html.erb within layouts/application (39.7ms)
Completed 200 OK in 273ms (Views: 268.3ms | ActiveRecord: 0.7ms)
当我选择一个项目时,控制台不会改变
答案 0 :(得分:0)
也许你应该在POST请求标题中使用X-CSRF-Token?
答案 1 :(得分:0)
您的请求无效的原因是您使用了错误的语法。它试图找到一个名为JQuery
的变量,这就是为什么你得到错误Uncaught ReferenceError: JQuery is not defined
。
正确的语法是jQuery.ajax
或$.ajax
。
在纠正之后,您应该在控制器内创建一个响应,您的请求指向该响应以实时确认其全部工作。但是你应该在rails控制台中看到请求。
另一方面,我在评论中注意到您使用了chrome及其开发者控制台。我强烈建议您使用firefox及其插件firebug进行所有调试。我发现它比chrome更好,它很容易在代码中看到错误,就像这段代码中的错误一样。