如何在模态(表单)中传递数据来编辑值?

Posted

技术标签:

【中文标题】如何在模态(表单)中传递数据来编辑值?【英文标题】:How to pass data in Modal(form) to edit values? 【发布时间】:2021-06-07 00:25:22 【问题描述】:

我正在使用 laravel 应用程序并使用模态表单进行编辑。

当我在两个字段中使用标签作为“title”、“des”和模态“my-title”和“my-description”时,当我使用任何文本时,它会获取所有数据,但在第三个字段上"value" & "my-value" 获取不到数据。

还请帮助如何在下拉菜单中获取数据。

在此您可以看到阶段总面积的数据,而城镇没有进入必填字段。

Index.blade.php

                    @foreach($phases as $cat)
                        <tr>
                            <td>$cat->phase_name</td>
                            <td>$cat->phase_address</td>
                            <td>$cat->phase_totalarea</td>
                            <td>
                                 \Illuminate\Support\Facades\DB::table('towns')->where('id',$cat->town_id)->value('town_name')</td>
                            <td>
                                <button class="btn btn-info" 
                                data-mytitle="$cat->phase_name" 
                                data-mydescription="$cat->phase_address" 
                                data-myvalue="$cat->phase_totalarea" 
                                 data-mytown="$cat->town_id"
                                data-catid=$cat->id data-toggle="modal" 
                                data-target="#edit">Edit</button>
                                /
                                <button class="btn btn-danger" data-catid=$cat->id data-toggle="modal" data-target="#delete">Delete</button>
                            </td>
                        </tr>

                    @endforeach

Form.blade.php

    <label for="title">Phase Name</label>
    <input type="text" class="form-control" name="phase_name" id="title">
</div>

<div class="form-group">
    <label for="des">Phase Address</label>
    <textarea name="phase_address" id="des" cols="20" rows="5" class="form-control"></textarea>
</div>


<div class="form-group">
    <label for="value">Phase Total Area</label>
<input type="text" class="form-control " name="phase_totalarea" id="value"  >


</div>

@php
use Illuminate\Support\Facades\DB;
$twn=DB::table('towns')->get();
$counter=0;
@endphp

<div class="form-group row">

<label for="town" class="col-md-4 col-form-label">Select Town:</label>

<div class="col-md-4 col-form-label">
    <select name="town_id" class="form-control" style="width:360px" id="town" required autofocus>
        <option value="">--- Select Town ---</option>


        @foreach($twn as $town)
            @if($counter==-1)
                <option selected="selected" value="$town->id">$town->town_name</option>
                $counter++
            @else
                <option value="$town->id">$town->town_name</option>
            @endif
        @endforeach
    </select>
</div>
</div>

【问题讨论】:

【参考方案1】:

因为您没有包括我猜的错误您需要为此涉及 jquery。在数据表中为 onclick 创建一个函数,就像您为删除所做的那样。 并将数据发送给函数,然后通过 ID 将数据传递给模态。这将是一种简单而专业的方式

   function openModalAndSendData(a)
     var title= $(a).attr('title');
     var desc = $(a).attr('desc ');
     var value= $(a).attr('value');

$('#Modal').modal('show');
        $('#title').val(title);
        $('#desc ').val(desc );
        $('#value').val(value);
    

在模态下获取输入字段中的数据,如

<label for="recipient-name" class="col-form-label"> title:</label>
<input type="text" class="form-control" id="title"  >

<label for="recipient-name" class="col-form-label"> desc :</label>
<input type="text" class="form-control" id="desc"  >

<label for="recipient-name" class="col-form-label"> value:</label>
<input type="text" class="form-control" id="value"  >

【讨论】:

你能告诉我如何在控制器中添加临时表达式以及如何从索引页面中调用这些模式。当我添加这个时,我得到“不能在写上下文中使用临时表达式” 点击后,您可以每次更改值,此过程从控制器开始。获取要在数据表中查看的数据列表 在数据表的每一行和 onclick 的属性中添加按钮,然后在 onclick 函数中,您将从按钮属性获取值并通过 id 在模态输入中设置值,然后打开模态。在每次点击时,您都会传递新数据,这就是您更改数据的方式。无需每次都让控制器参与其中。你是怎么理解的

以上是关于如何在模态(表单)中传递数据来编辑值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有表单字段的情况下从表单传递数据? (PHP)

如何在 Jmeter 中传递表单数据值?

xcode/ios:以编程方式启动模态视图控制器时如何传递数据

如何获取模态中的数据ID,然后将其传递给ajax?

将php数据/变量传递给模态

通过 PHP 将 MySQL 数据传递给模态表单