我正在使用Rails 3中的原型,并最终使用了一些jquery(我的第一次,它非常甜蜜)。虽然,从我的视图(即Impromptu JQuery Survey)提交数据到我的数据库(sqllite3)时,我似乎陷入困境。让我解释一下页面是如何工作的:
这就是它。我想要的结果是在用户通过单击完成提交表单后,每个已回答的问题都需要进入数据库。一些输入字段是复选框和下拉列表。
以下是调查的最后一个问题的代码示例:
state7: {
html:'Personality Type <div class="field"><select name="personality" id="rate_find"><option value="enfp">ENFP</option><option value="INTJ">INTJ</option><option value="ESTJ">ESTJ</option><option value="INTP">INTP</option></select></div>',
buttons: { Back: -1, Cancel: 0, Finish: 1 },
focus: 2,
submit: function(v, m, f){
if (v == 0)
$.prompt.close()
else
if (v == 1)
return true; //we're done
else
if (v = -1)
$.prompt.goToState('state6');//go back
return false;
}
}
}
$.prompt(temp,{
callback: function(v,m,f){
var str = "You can now process with this given information:<br />";
$.each(f,function(i,obj){
str += i + " - <em>" + obj + "</em><br />";
});
$.prompt(str)
}
});
}
答案 0 :(得分:0)
包含通过即兴弹出窗口获得的信息的键/值对需要像regular form中所期望的那样堆积到POST请求中。如果您有一个ActiveRecord模型用于进入数据库的数据,那么您可以在视图中创建一个具有触发弹出窗口的下拉列表的表单,但只需隐藏整个表单。然后在调查结束时,您可以通过并为正确的输入分配值(例如
$.each(f,function(i,obj){
$('input#' + i).val(obj);
});
),最后的“完成”按钮可以在表单上trigger the submit event。您可以查看this question以了解如何使用jquery检查复选框。
希望有所帮助!