Php 如何在不禁用操作按钮的情况下禁用列?

Php 如何在不禁用操作按钮的情况下禁用列?,php,laravel,Php,Laravel,通过单击第1行。有了研究所的名称,该研究所的实验室就显得大小合适了。因此,无论我在哪里点击系统,右边都会出现实验室。因此,如果我单击编辑或删除按钮,实验室选项卡将继续弹出,几秒钟后,研究所的编辑选项卡将打开。有什么想法吗 @section('javascript') <script> var laboratories = '{{htmlspecialchars(json_encode($laboratories), ENT_QUOTES, 'UTF-8')}}'; l

通过单击第1行。有了研究所的名称,该研究所的实验室就显得大小合适了。因此,无论我在哪里点击系统,右边都会出现实验室。因此,如果我单击编辑或删除按钮,实验室选项卡将继续弹出,几秒钟后,研究所的编辑选项卡将打开。有什么想法吗

@section('javascript')
<script>
    var laboratories = '{{htmlspecialchars(json_encode($laboratories), ENT_QUOTES, 'UTF-8')}}';
    laboratories = laboratories.replace( /&quot;/g, '"' );
    laboratories = JSON.parse(laboratories);
    // console.log(laboratories);
    function getLaboratories(id)
    {
        $("table#laboratories").empty();
        var table = "<tr>" +
            "<th>ID</th>" +
            "<th>{{ __('Laboratory\'s Name') }}</th>" +
            "<th>{{ __('Laboratory\'s Acronym') }}</th>" +
            "<th>{{ __('Actions') }} </th>" +
            "</tr>";
        for(var i=0; i<laboratories[id].length; i++)
        {
            table += '<tr><td>'+id+'.'+(i + 1)+'</td><td>'+laboratories[id][i].name+'</td><td>'+laboratories[id][i].acronym+'</td>';
            table += '<td><a alt="{{ __('Delete Laboratory')}}" title="{{ __('Edit Laboratory')}}" class="btn btn-sm btn-default" href="laboratories/'+laboratories[id][i].id+'/edit"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>' +
                '<form action="laboratories/delete/'+laboratories[id][i].id+'/" method="post" class="form-delete2">{{csrf_field()}}{{method_field('DELETE')}}'+
                '<button alt="{{ __('Delete Laboratory')}}" title="{{ __('Delete Laboratory')}}" class="btn btn-sm btn-default delete" id="delete_modal2" name="delete_modal2"><span class="glyphicon glyphicon-trash"></span></button></form></td></tr>';
        }
        $("table#laboratories").append(table);

        // EXTRA
        var href = $("#create_lab").attr('href');
        // console.log(href);
        let positiion = href.search("institute_id");
        href = href.substring(0,positiion)+"institute_id="+id;
        // console.log(href);
        $("#create_lab").attr('href', href)
        $("#create_lab").attr('disabled', false);
    }
</script>

<div class="container-fluid">
    <div class="row">
        <div class="col-md-5">
            <div class="panel panel-default">
                <div class="panel-heading">
                    <a href="{{route('institutes.create')}}" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> {{ __('Create New Institute') }}</a>
                </div>
                <div class="panel-body">
                    <div class="table-responsive">
                        <table class="table table-bordered table-hover" data-toggle="dataTable" data-form="deleteForm">
                           <tr>
                               <th>ID</th>
                               <th>{{ __('Institute\'s Name') }}</th>
                               <th>{{ __('Institute\'s Acronym') }}</th>
                               <th>{{ __('Actions') }}</th>
                           </tr>
                            @if(count($institutes) > 0)
                                @foreach($institutes as $institute)
                                    <tr onclick="getLaboratories({{$institute->id}});">
                                        <td>{{$institute->id}}</td>
                                        <td>{{$institute->name}}</td>
                                        <td>{{$institute->acronym}}</td>
                                        <td>
                                            <a alt="{{ __('Edit Institute')}}"title=" {{ __('Edit Institute')}}" class="btn btn-sm btn-default" href="{{route('institutes.edit', $institute->id)}}"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
                                            <form action="{{route('institutes.destroy', $institute->id)}}" method="post" class="form-delete">
                                                {{csrf_field()}}
                                                {{method_field('DELETE')}}
                                                <button alt="{{ __('Delete Institute')}}" title="{{ __('Delete Institute')}}" class="btn btn-sm btn-default delete" id="delete_modal" name="delete_modal">
                                                    <span class="glyphicon glyphicon-trash"></span>
                                                </button>
                                            </form>
                                        </td>
                                    </tr>
                                @endforeach
                            @else
                                <tr>
                                    <td>{{ __('There are no institutes available.') }}</td>
                                </tr>
                            @endif
                        </table>
                    </div>
                </div>
            </div>
     </div>

@节(“javascript”)
var laboratories={{htmlspecialchars(json_编码($laboratories),ENT_引号,'UTF-8')}};
实验室=实验室。替换(/“/g,”);
laboratories=JSON.parse(laboratories);
//控制台日志(实验室);
功能实验室(id)
{
$(“表#实验室”).empty();
var table=“”+
“ID”+
“{{{{{('Laboratory's Name')}}”+
“{{{{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu+
“{{{{('Actions')}}”+
"";
对于(变量i=0;i 0)
@foreach($institutes as$institute)
{{$institute->id}
{{$institute->name}
{{$institute->acronym}
{{csrf_field()}}
{{method_field('DELETE')}
@endforeach
@否则
{{{{}(“没有可用的研究所”)}
@恩迪夫

无论如何,我怀疑这是一个javascript问题,而不是php/laravel问题:在按钮的单击处理程序上,您调用“StopperPagation”,以停止按钮上的单击事件冒泡,从而触发行上的单击事件。发生的情况是,单击按钮也是对行的单击,因此它会对这两种情况做出反应

请参见以下示例html:

<table>
<tr><td>the row<td> <span ><input type="button" value="I am a button"/>           </span></td></td></tr>
</table>

<div id="messages">

</div> 

争吵
这个javascript:

$('tr').on('click', function(){
    $('#messages').append('<div>You clicked the row</div>')
})

$('span').on('click', function(e){

$('#messages').append('<div>You click the button</div>')
})
$('tr')。在('click',function()上{
$(“#消息”).append('您单击了行')
})
$('span')。在('click',函数(e)上{
$(“#消息”).append('单击按钮')
})
如您所见,当您单击按钮时,它会同时触发按钮和行的事件

如果您选择此选项:

$('tr').on('click', function(){
    $('#messages').append('<div>You clicked the row</div>')
})

$('span').on('click', function(e){
e.stopPropagation();
$('#messages').append('<div>You click the button</div>')
})
$('tr')。在('click',function()上{
$(“#消息”).append('您单击了行')
})
$('span')。在('click',函数(e)上{
e、 停止传播();
$(“#消息”).append('单击按钮')
})

(注意“e.stopProgration();”)它只会为按钮触发事件。

我认为这是一个js问题,一个点击事件冒泡。你有一些代码给我们吗?太长了。有没有其他方法发送此消息?发布代码的重要部分,例如,只是表单和处理它的后端,而不是整个类检查我的代码下面我已经放置了你的代码从答案到您的问题。它应该被编辑为只显示与您的问题相关的重要部分。我将留给您。祝您好运!我做了您提到的事情,但禁用了该行。我只需要包含操作、编辑和删除的列,而不是所有行。