现在,我正在从 Controller 端请求用户列表,并制作 html 代码并附加它。
我编写了这样的代码,
$.ajax({
type : "get",
contentType : "application/json; charset=utf-8",
url : "/users/search_users",
data : {
name : name
},
dataType : "text",
success : function(result) {
if (result == "User not found") {
alert("User not found");
} else {
//console.log(result);
var peopleData = jQuery.parseJSON(result);
var resultHTML = "<tr>";
resultHTML += "<th></th><th style='display:none'>User ID</th>" + "<th>First Name</th><th>Last Name</th><th>Email Address</th>" + "<th style='display:none'>Time Zone</th>";
resultHTML += "</tr>";
$.each(peopleData, function(index, obj) {
resultHTML += "<tr>";
resultHTML += "<td><input type='checkbox'></td>" + "<td style='display:none;'>" + obj.id + "</td>" + "<td>" + obj.firstname + "</td>" + "<td>" + obj.lastname + "</td>" + "<td>" + obj.email + "</td>" + "<td style='display:none;'>" + "Etc/GMT+9 (Japan)" + "</td>";
//consider now
resultHTML += "</tr>";
});
$("#internal_table").html(resultHTML);
}
},
error : function() {
window.alert("something wrong!");
}
});
它工作得很好,但我的老板想改变这个代码,使用 $.load和rails代码。
我用谷歌搜索了一些这样的示例代码,
$("#ad_ad_ad_ad_type_id").load('/ad_ad_types/ajax_types?adtype='+$("#ad_ad_adtype").val());
form_rows << [f.label(:screen_type, t('ad.ad_type')), f.select(:ad_ad_type_id, @ad_ad_types.map{|st|[st.description, st.id]}, {:selected => @ad_ad.ad_ad_type_id})]
该示例代码是,从 Controller 端获取下拉框数据,
并使用 form.select 它正在制作 <option>data</option>
自动在 View 侧。
就我而言,是否可以使用rails code 将 tr 和 td 标签与特定属性一起放置,就像我在第一个代码中所做的那样?
我的老板想使用 Rails 代码自动制作此 html 代码,而不是像我所做的那样手动制作标签。
我认为 Rails 表单助手仅支持简单的文本字段或选择框或输入此类内容。他们也支持 table 吗?放置 tr 和 td 标签?
有什么好的解决办法吗?
最佳答案
我不是表单助手的忠实粉丝,但这就是我会做的,
<%= form_for(< your config here >) do |f|%>
<tr>
<td>
<%= f.label(:screen_type, t('ad.ad_type')) %>
</td>
<td>
<%= f.select(:ad_ad_type_id, @ad_ad_types.map{|st|[st.description, st.id]}, {:selected => @ad_ad.ad_ad_type_id}) %>
</td>
</tr>
<% end %>
关于javascript - Rails 中的 AJAX 与 jQuery 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20260199/