简体   繁体   English

动态表格保存到数据库

[英]Dynamic Form Save into DB

Hello guys hope you can help me and gimme some advice cause i don't know what to do right now. 大家好,希望您能帮助我,给我一些建议,因为我现在不知道该怎么办。 Please kindly help. 请帮助。

I've dynamic form where i can add (append) new row but when i tried to save it's value it said undefined offset. 我有一个动态表单,可以在其中添加(附加)新行,但是当我尝试保存它的值时,它表示未定义的偏移量。 Please look into my code 请查看我的代码

This is my View 这是我的看法

<tbody>
              <tr>
                <td>1</td>
                <td><textarea class="form-control" rows="3" name="analisa[0]" placeholder="Analisa Penyebab" style="resize: none;
                height: 50px"></textarea></td>
                <td><textarea class="form-control" rows="3" name="tindakan[0]" placeholder="Tindakan Perbaikan dan Pencegahan" 
                style="resize: none; height: 50px"></textarea></td>
                <td><input class="form-control" type="text" name="pic[0]" placeholder="PIC"></td>
                <td><input class="form-control" type="date" name="tanggal_pelaksanaan[0]"</td>
              </tr>
            </tbody>
          </table>

          <a class="button" href="#" role="button" id="add">&nbspTambah Analisa</a>

And this is my Javascript 这是我的Javascript

$(document).ready(function(){
    var i = 1;

    $('#add').click(function(){
        i++;
        $('#tbanalisa tbody').append("<tr>"+"<td>"+i+"</td>"+"<td><textarea class=\"form-control\" rows=\"3\" name=\"analisa"+i+"\" placeholder=\"Analisa Penyebab\" style=\"resize: none; height: 50px\"></textarea></td>"+"<td><textarea class=\"form-control\" rows=\"3\" name=\"tindakan"+i+"\" placeholder=\"Tindakan Perbaikan dan Pencegahan\"style=\"resize: none; height: 50px\"></textarea></td>"+"<td><input class=\"form-control\" type=\"text\" name=\"pic"+i+"\" placeholder=\"PIC\"></td>"+"<td><input class=\"form-control\" type=\"date\" name=\"tanggal_pelaksanaan"+i+"\" id=\"date"+i+"\" ></td>"+"</tr>");

    document.getElementById('count').value = i;  
    });

});

And this is my function in Controller 这是我在Controller中的功能

for($i=0; $i<2; $i++){
        $data[] = array(
            'id_tindakan'=>$tindakan->id,
            'analisa'=>$request->analisa[$i],
            'tindakan'=>$request->tindakan[$i],
            'pic'=>$request->pic[$i],
            'tanggal_pelaksanaan'=>$request->tanggal_pelaksanaan[$i]
        );
    }
    DB::table('analisas')->insert($data);

I Tried to change index of each array in javascript not analisa[i] but i try analsia[1] and it works fine. 我试图在javascript中更改每个数组的索引,而不是analisa [i],但我尝试使用analsia [1],它工作正常。 Why i make my code error ? 为什么我使我的代码错误?

undefined offset means either there is nothing at that index or simply your object is not array. undefined offset意味着该索引处没有任何东西,或者仅仅是对象不是数组。 For your case, I think your variable is not an array. 对于您的情况,我认为您的变量不是数组。 In your Javascript, you do 在您的Javascript中,

name=\"analisa"+i+"\"

Which means the actual name is rendered in html as 这意味着实际名称以html格式呈现为

name="analisa2"

Whereas in Laravel you want to get it with analisa[2] , which is not an array. 而在Laravel中,您想使用analisa[2]来获得它,它不是数组。

As a solution, you either change your Javascript to name it as an array 作为解决方案,您可以更改Javascript以将其命名为数组

name=\"analisa["+i+"]\"

Or change your controller to pick the exact same name sent from Javascript 或者更改您的控制器以选择从Javascript发送的完全相同的名称

'analisa'=>$request->analisa.$i,

保存内容<div contenteditable="“true”">通过 Rails 中的表单到我的数据库</div><div id="text_translate"><p>我正在尝试通过表单将&lt;div contenteditable="true"&gt;的内容保存到我的 Rails 应用程序中的数据库中,以便用户可以保存和更新它。</p><p> 这是设置:</p><p> 用户获得一个视图(即 /posts/1),其中包含一个&lt;div&gt;和contenteditable= "true" 。 我添加了 javacript 给我一个“保存”按钮和一个隐藏字段,它将捕获 div 的内容以进行保存,如<a href="https://stackoverflow.com/questions/7355583/can-div-with-contenteditable-true-be-passed-through-form" rel="nofollow">Can div with contenteditable=true be pass through form 中所建议的那样?</a> . 然后将其更改为遵循同一问题中的建议。</p><pre> &lt;%= form_for @post do |form| %&gt; &lt;%= form.hidden_field:content %&gt; &lt;%= form.submit "Save" %&gt; &lt;% end %&gt; &lt;div id="content" contenteditable="true"&gt; &lt;p&gt;Hello&lt;/p&gt; &lt;/div&gt; &lt;script&gt; document.getElementById('content').addEventListener('input', function(ev){ document.getElementById('post_content').value = ev.target.innerHTML; }) &lt;/script&gt;</pre><p> 我正在寻找的行为是这种形式,一旦我按下“保存”,将&lt;div id="content"&gt;的所有内容保存到@post.content</p><p> 我在post_params中的posts_controller.rb中添加了:content</p><pre> def post_params params.require(:post).permit(:user_id, :content) end</pre><p> 但它不起作用。 @post.content保持nil 。</p><p> 服务器日志显示 param:content 正在发送,但为空!</p><pre> Started PATCH "/posts/3" for::1 at 2019-10-01 19:36:24 +0200 Processing by PostsController#update as HTML Parameters: {"authenticity_token"=&gt;"SRzcfcrBWOCdaWeJkp6rCRw94Ex2XLuVvnc3Bt1dFP1JFz36NCNTcxcuOVqzymlIGq9sveaE/+OkDnaHv3kJNQ==", "post"=&gt;{"content"=&gt;""}, "commit"=&gt;"Save", "id"=&gt;"3"}</pre><p> 任何猜测我做错了什么? 提前致谢</p></div> - Save content of a <div contenteditable=“true”> to my db through a form in Rails

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 动态文本输入通过Ajax保存到数据库 - dynamic text inputs save to the db via ajax 在 ReactJS 中保存动态表单中的值 - Save values from dynamic form in ReactJS 如何在Angular中保存动态表单答案? - How to save Dynamic Form Answer in Angular? 如何将动态表单保存到数据库/将表单编辑回来 - How to save dynamic form to database / edit form back Django 模型表单多重选择器无法保存 inti DB - Django model form mutiple selector can not save inti DB 保存内容<div contenteditable="“true”">通过 Rails 中的表单到我的数据库</div><div id="text_translate"><p>我正在尝试通过表单将&lt;div contenteditable="true"&gt;的内容保存到我的 Rails 应用程序中的数据库中,以便用户可以保存和更新它。</p><p> 这是设置:</p><p> 用户获得一个视图(即 /posts/1),其中包含一个&lt;div&gt;和contenteditable= "true" 。 我添加了 javacript 给我一个“保存”按钮和一个隐藏字段,它将捕获 div 的内容以进行保存,如<a href="https://stackoverflow.com/questions/7355583/can-div-with-contenteditable-true-be-passed-through-form" rel="nofollow">Can div with contenteditable=true be pass through form 中所建议的那样?</a> . 然后将其更改为遵循同一问题中的建议。</p><pre> &lt;%= form_for @post do |form| %&gt; &lt;%= form.hidden_field:content %&gt; &lt;%= form.submit "Save" %&gt; &lt;% end %&gt; &lt;div id="content" contenteditable="true"&gt; &lt;p&gt;Hello&lt;/p&gt; &lt;/div&gt; &lt;script&gt; document.getElementById('content').addEventListener('input', function(ev){ document.getElementById('post_content').value = ev.target.innerHTML; }) &lt;/script&gt;</pre><p> 我正在寻找的行为是这种形式,一旦我按下“保存”,将&lt;div id="content"&gt;的所有内容保存到@post.content</p><p> 我在post_params中的posts_controller.rb中添加了:content</p><pre> def post_params params.require(:post).permit(:user_id, :content) end</pre><p> 但它不起作用。 @post.content保持nil 。</p><p> 服务器日志显示 param:content 正在发送,但为空!</p><pre> Started PATCH "/posts/3" for::1 at 2019-10-01 19:36:24 +0200 Processing by PostsController#update as HTML Parameters: {"authenticity_token"=&gt;"SRzcfcrBWOCdaWeJkp6rCRw94Ex2XLuVvnc3Bt1dFP1JFz36NCNTcxcuOVqzymlIGq9sveaE/+OkDnaHv3kJNQ==", "post"=&gt;{"content"=&gt;""}, "commit"=&gt;"Save", "id"=&gt;"3"}</pre><p> 任何猜测我做错了什么? 提前致谢</p></div> - Save content of a <div contenteditable=“true”> to my db through a form in Rails 创建动态更新表单,从MYSQL DB采购 - Creating a dynamic updating form, sourcing from MYSQL DB 如何从 db w/o framework 制作动态表单? - How to make a dynamic form from db w/o framework? 将动态 html 表单数据保存到表格 (Laravel 5.2) - Save dynamic html form data to table (Laravel 5.2) 如何使用查询将动态表单数据从javascript保存到数据库 - how to save dynamic form data from javascript to database with a query
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM