从数据库中获取值并在 Laravel 中单击按钮时以表单形式显示它

Posted

技术标签:

【中文标题】从数据库中获取值并在 Laravel 中单击按钮时以表单形式显示它【英文标题】:Fetching values from database and showing it in a form upon button click in Laravel 【发布时间】:2020-11-11 04:50:07 【问题描述】:

我们有一个表,其内容是从数据库中获取的。现在,我们想用在 Laravel 中被点击的表格的相关行的数据来填充一个表格。

This is how the table (left) and the form looks

表格代码:

<table id="category_table" class="table table-bordered table-hover">
                  <thead>
                  </thead>
                  <tbody>
                  @foreach($cat as $c)    
                  <tr>
                  <?php $index=1;?>
                    <td>$c->cat_name</td>
                    <td ><button class="btn btn-info" onclick=fill(this)><i class="fa fa-arrow-right"></i></button>
                  </tr>
                  <?php $index=$index+1;?>
                  @endforeach
                  </tbody>
                  <tfoot>
                  </tfoot>
                </table>

这是表单代码的一部分:

 <div class="card-body">
                  <div class="form-group">
                    <label for="name">Name</label>
                    <input type="text" class="form-control" id="name" placeholder="Enter Name" value="">
                  </div>
                  <div class="form-group">
                    <label for="short_name">Short Name</label>
                    <input type="text" class="form-control" id="short_name" placeholder="Short Name">
                  </div>
                  <div class="form-group">
                    <label for="description">Description</label>
                    <textarea class="form-control" id="description" placeholder="Description"></textarea>
                  </div>

这是获取选定表行值的 javascript 部分,我们需要通过它从数据库中获取其他值到表单中:

<script type="text/javascript">  
      function fill(e)
        
        var $item = $(e).closest("tr").find("td:first").text();  
        document.getElementById("name").value= $item;    
        
        
    </script> 

【问题讨论】:

【参考方案1】:

你可以这样做:

<button class="btn btn-info" data-model='$c->toJson()' onclick="fill()">

// then in js something like
function fill() 
    let $item = $(this).attr("data-model");
    console.log($item); // item should have all the data

编辑:

提问者没有使用 Laravel Eloquent 模型。这就是为什么在这种情况下,解决方案会像这样处理普通的 php 对象:

data-model=' json_encode($c)'

【讨论】:

我们尝试添加您建议的 sn-p,但收到错误“调用未定义方法 stdClass::toJson()” 那么您没有使用 Laravel Eloquent 模型,我强烈建议您这样做。无论如何,在你的情况下尝试 data-model=' json_encode($c) ' 你总是可以通过接受和支持来感谢我;)谢谢!

以上是关于从数据库中获取值并在 Laravel 中单击按钮时以表单形式显示它的主要内容,如果未能解决你的问题,请参考以下文章

php从数据库中删除值并使其他不变

我如何从数据库中读取值并在消息框中返回它

从日期字段中删除时间值并在从数据库中获取数据时更改格式

PHP:从表单中获取电子邮件并在单击按钮时发送它

从数组中获取随机值并在 DOM 中发布

如何存储所有选定的按钮值并在 UILabel 上显示它们?