【问题标题】:How to call a controller function when someone click on a check box in laravel 8当有人单击laravel 8中的复选框时如何调用控制器功能
【发布时间】:2020-12-25 10:05:28
【问题描述】:

当有人单击复选框时,有什么方法可以调用控制器功能。就像有 4 个复选框,每个复选框都有一个类别,因此当用户单击特定类别时,它将点击处理来自后端的过滤器请求的 API。我在 Google 上搜索过,但可以选择将其更改为

<a href="API url"></a>

但我不想要。我必须使用 jquery 还是其他?

【问题讨论】:

  • 你可以通过 javascript/jQuery 来完成,在复选框的更改事件上,并使用 AJAX 调用 laravel API
  • 你的意思是说,每当我必须做这些事情时,我必须使用 jquery / javascript?
  • 如果你想动态更新你的 HTML 页面而不是你必须这样做

标签: laravel laravel-8


【解决方案1】:

在评论部分,您可以通过 JQuery/Javascript 实现这一点。我添加了一个带有 JQuery 的简单示例供您参考。我在这里实现的是首先捕获所有检查和检查事件,然后通过 Ajax 我向服务器发送请求。这样控制器函数就会被调用。当您选中或取消选中复选框时,您可以通过网络选项卡进行测试。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="utf-8">
      <meta name="csrf-token" content="{{ csrf_token() }}">
      <title>Check the Status of Checkboxes</title>
      <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
      <script>
         $(document).ready(function(){
          
          //Add CSRF token to headers
            $.ajaxSetup({
                    headers:
                    { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
                });
         
         
         
                $('input[type="checkbox"]').click(function(){
                
                 const val = $(this).val()
                 
                    if($(this).prop("checked") == true){
                   
                       alert(val+' Checked and sending data to server')
                       
                       $.ajax({
                              type: "POST",
                              url: "file", // Route 
                              data: { checkbox_val:val }
                             })
                               .done(function( msg ) {
                                   alert( "Data: " + msg );
                               });

                    }else{
                    
                     alert($(this).val()+' unchecked');
                     
                      $.ajax({
                              type: "POST",
                              url: "file",
                              data: { checkbox_val:val }
                              })
                              .done(function( msg ) {
                                  alert( 'Record removed' );
                              });

                     }
                });
            });
      </script>
   </head>
   <body>
      <input value="A" type="checkbox"> A
      <input value="B" type="checkbox"> B
      <input value="C" type="checkbox"> C
   </body>
</html>

【讨论】:

  • 感谢@Nipun Tharuksha,但问题是我有一个重绘数据的循环,如果我使用 jQuery,那么我必须从 JavaScript 循环数据,因为那时我没有控制器变量(最初存储数据的位置)。那么分页和其他的东西是如何工作的呢?
  • @Pooja 看起来有点复杂,而不是提到的问题标题。无论如何,我只是试图回答你的问题。谢谢如果您需要更多帮助,请更新问题
  • 问题已解决@Nipun Tharuksha。感谢您的帮助
  • @Pooja 乐于助人
猜你喜欢
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 2021-12-18
  • 1970-01-01
  • 2013-05-10
  • 2020-10-18
相关资源
最近更新 更多