嘿我试图用AJAX进行级联选择。
问题是JSON格式的响应没有出现在选择列表中
这些是我的控制者:
def fallas
@falla = Tipos.select("tip_id, tip_titulo").where("tip_id_padre = ?", params[:item])
respond_to do |format|
format.html
format.js
format.json { render json: @falla}
end
end
我在那里进行AJAX调用的CoffeeScript:
jQuery ->
$('#solicitudes_tip_id_item').change ->
data = $('#solicitudes_tip_id_item :selected').val()
$.ajax({
type: "POST",
url: "/solicitudes/fallas",
dataType: 'json'
data: item:data,
success:(data) ->
$('#solicitudes_tip_id_falla').append(data)
error:(data) ->
return false
})
当我显示答案时,这些是js.erb文件(也许这是问题)
$("#solicitudes_tip_id_falla").empty()
$("#solicitudes_tip_id_falla").append("<%= render :json(:partial => @falla) %>")
控制台告诉我这个:
[{"tip_id":14,"tip_titulo":"Monitor encendido pero sin imágen"}]
但是没有选择。
我如何显示json数据或如何进行级联选择?
编辑: 如果我使用函数JSON.parse我得到以下错误:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
现在,我删除了coffeescript,我用Jquery制作了它:
$("#solicitudes_tip_id_item").change(function(){
var data = $("#solicitudes_tip_id_item :selected").val();
$.ajax({
url: "solicitudes/fallas",
data: {item : data},
dataType:'json',
type:'GET',
success: function(resp){
/*$.each(resp, function(idx, obj) {
$('#prueba').append($("<option></option>").attr("value",obj.tip_id).text(obj.tip_titulo));
});
*/
var lol= JSON.stringify(resp);
console.log(lol);
var lel = JSON.parse(lol)
console.log(lel);
}
});
在var lol和lel的控制台日志中,显示: Var lol:
[{"tip_id":14,"tip_titulo":"Monitor encendido pero sin imágen"}]
Var lel:
Array [ Object ]
只需将该信息转换为字符串即可解析为select