我想知道如何使用 ajax 调用获取 2 个变量来更新 div 标签,而不仅仅是 1 个。我当前的 .js 文件:
$(document).ready(function() {
$("select").change(function() {
var selected_product_id;
selected_product_id = $(this).val();
$.ajax({
url: "/products/" + selected_product_id,
type: "GET",
success: function(data) {
$("#description").empty().append(data);
}
});
});
});
show.html.erb 我在哪里获取数据:
<%= @product.item %>
我想要这样的东西
$.ajax({
url: "/products/" + selected_product_id,
type: "GET",
success: function(data) {
$("#description").empty().append(data[1]);
$("#price").empty().append(data[2]);
}
});
和
<%= @product.item %>
<%= @product.price %>
我的描述 div 用@product.item 更新,我的价格 div 用@product.price 更新。我怎么能做到这一点?
编辑
更新的 .js 文件
$(document).ready(function() {
$("select").change(function() {
var selected_product_id;
selected_product_id = $(this).val();
$.ajax({
url: "/products/" + selected_product_id,
type: "json",
success: function(data) {
$("#description").empty().append(product.item);
$("#price").empty().append(product.price)
}
});
});
});
显示.html.erb:
<%= @product.item %>
<%= @product.price %>
控制器:
class ProductsController < ApplicationController
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @product.to_json }
end
def index
end
def show
@product = Product.find(params[:id])
end
end
我很确定控制器不正确。我将 @product 放在了 respond_to 之前,但它没有用,所以我只是把 respond_to 放在了不知道它去哪里的情况下。很抱歉成为这样的菜鸟。感谢你的帮助。
最终编辑:
工作的javascript文件:
$(document).ready(function() {
$("select").change(function() {
var selected_product_id;
selected_product_id = $(this).val();
$.getJSON("/products/"+selected_product_id,function(data){
$("#description").empty().append(data.item);
$("#price").empty().append(data.price);
});
});
});