在 Laravel 中通过 js onclick 事件提交数据

Posted

技术标签:

【中文标题】在 Laravel 中通过 js onclick 事件提交数据【英文标题】:submit data by js onclick event in Laravel 【发布时间】:2014-08-05 17:41:46 【问题描述】:

如何通过js onclick事件提交表单?我正在使用 Laravel 4.1。

我试过这段代码

@foreach ($items as $item)
    <li>
         Form::checkbox('items', $item->id , $item->done, ['onClick'=> 'this.form.submit()']) 
         $item->name 
    </li>
@endforeach

但我无法得到我想要的。 在控制器我有以下代码:

public function postIndex()

    $id = Input::get('id');
    echo $id;

顺便说一句,在 chrome 控制台中我收到以下错误:

未捕获的类型错误:无法读取 null 的属性“提交”

谁能帮我解决这个问题?

【问题讨论】:

这是在 form 里面吗? 【参考方案1】:

据我所知,一个视图中不应有多个标签。我建议你使用 ajax 来触发提交事件。但是,您甚至没有一个表单打开标签,而只有一个复选框。

我可能需要更多信息,但据我了解,您需要在单击复选框时向控制器提交数据。

我会这样做:

// Your view
<!-- CSRF Token -->
    <input type="hidden" name="_token" value=" csrf_token() " />
<!-- ./ csrf token -->

@foreach ($items as $item)
<input type="checkbox" name="$item->id" id="$item->id" value="$item->done" class="checkbox_click">
@endforeach

<script type="text/javascript">
    $(document).ready(function() 
        $('.checkbox_click').click(function()                  
            var currentValue = $(this).attr("value");
            $.ajax(
                url: 'your/route',
                method: 'post',             
                data: id: currentValue, _token: $('input[name="_token"]').val(),
                success: function(data)
                    alert(data);
                ,
                error: function(),
            );
        );         
    );
</script>

// Your controller
public function postIndex()

    if (Request::ajax)
    
        $id = Input::get('id');

        return Response::json($id);
    


// Your routes.php
Route::post('your/route', YourController@postIndex);

【讨论】:

以上是关于在 Laravel 中通过 js onclick 事件提交数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Google Maps Android API 中通过 onclick 选择功能

在 Android 中通过 onClick 事件通过 XML 获取特定条目

在 Laravel 中通过 Ajax 存储数据失败

在laravel中通过vuejs创建数组?

在 Laravel 4 中通过迁移脚本创建 MySQL 视图

在 laravel 中通过 ajax 返回视图