Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 RubyonRails,简单表单,发送多个变量值(即不同的行)_Ruby On Rails 3_Forms_Simple Form - Fatal编程技术网

Ruby on rails 3 RubyonRails,简单表单,发送多个变量值(即不同的行)

Ruby on rails 3 RubyonRails,简单表单,发送多个变量值(即不同的行),ruby-on-rails-3,forms,simple-form,Ruby On Rails 3,Forms,Simple Form,这应该很简单,但我似乎找不到任何文档。我使用的是Rails 3.2和simple_表单。我想制作一个表单,用户可以一次提交多行数据。例如,表格将为: 动物类型:\uuuuuu名称:\uuuuuuu 我希望他们能够提交多行。因此,他们可以: Animal type: Dog Name: Fido Animal type: Dog Name: Charley Animal type: Cat Name: Logan 等等 目标是能够提交用户拥有的尽可能多的项目,并通过jav

这应该很简单,但我似乎找不到任何文档。我使用的是Rails 3.2和simple_表单。我想制作一个表单,用户可以一次提交多行数据。例如,表格将为:

动物类型:\uuuuuu名称:\uuuuuuu

我希望他们能够提交多行。因此,他们可以:

Animal type:  Dog    Name: Fido
Animal type:  Dog    Name: Charley
Animal type:  Cat    Name: Logan
等等


目标是能够提交用户拥有的尽可能多的项目,并通过javascript创建新的输入行。我只是不知道表单提交的代码是如何编写的

您需要使用javascript做一些事情。下面是一些类似特性的jQuery实现代码(仅针对1个字段,需要针对两个字段进行相应调整):

jQuery(文档).ready(函数(){
jQuery('#linkToClick')。单击(函数(){
var id_count=document.getElementById('id_count');
var newIndex=parseInt(id\u计数);

var html='如果我理解正确,单击将检查当前字段计数的按钮,添加一个具有字段计数的新字段(即type1、type2、type3…),然后增加计数。这对于添加新字段是有意义的。但是表单呢?如何将其发布到服务器,以及如何在rails中处理?啊,我现在明白了。因此,我将有,例如,animal1 name1,animal2 name2,等等。我只需要迭代这些字段并将它们保存到数据库中。好的,上面的工作php中的ks。提交表单时,您有一个“type”数组,您可以遍历该数组以获取值,然后将其保存到需要的任何位置。我不确定它在Ruby中的工作方式,但我认为非常类似。但是,是的,听起来您有这个想法!
jQuery(document).ready(function() {
   jQuery('#linkToClick').click(function() {
   var id_count = document.getElementById('id_count');
   var newIndex = parseInt(id_count);
   var html = '<input type="text" name="type[' + newIndex + '] size=15 />';
   jQuery('#idOfWhereToAdd').before(html);
   id_count.value = newIndex + 1;
   return false;
   }) 
});