简体   繁体   English

使用 Ajax 在 Laravel 中更新数据库

[英]Database update in laravel using Ajax

I was following this tutorial to update or edit database table in Laravel.我正在按照本教程更新或编辑 Laravel 中的数据库表。 I have implemented the insertion section as follows:我已经实现了插入部分如下:

$(document).on('click', '.edit', function(){
            var id = $(this).attr("id");
            $('#form_output').html('');
            $.ajax({
                url:"{{route('ajax_data_manage.fetchdata')}}",
                method:'get',
                data:{id:id},
                dataType:'json',
                success:function(data)
                {
                    $('#player_name').val(data.player_name);
                    $('#player_country').val(data.player_country);
                    $('#player_age').val(data.player_age);

                    $('#player_id').val(id);
                    $('#playerModal').modal('show');
                    $('#action').val('Edit');
                    $('.modal-title').text('Edit Data');
                    $('#button_action').val('update');
                }
            })
        });

in controller file :在控制器文件中

function fetchdata(Request $request)
{
    $id = $request->input('id');
    $player = Player::find($id);
    $output = array(
        'player_name'    =>  $player->player_name,
        'player_country' =>  $player->player_country,
        'player_age'     =>  $player->player_age
    );
    echo json_encode($output);
}

I think the error is in fetching the data.我认为错误在于获取数据。 My Player table in the database has three columns (name, country, age) and the id and name of text-box in the form group:我在数据库中的 Player 表有三列(姓名、国家、年龄)以及表单组中文本框的 id 和名称:

<div class="form-group">
                        <label>Enter Player Name</label>
                        <input type="text" name="player_name" id="player_name" class="form-control" />
                    </div>
                    <div class="form-group">
                        <label>Enter Player Country</label>
                        <input type="text" name="player_country" id="player_country" class="form-control" />
                    </div>
                    <div class="form-group">
                        <label>Enter Player Age</label>
                        <input type="text" name="player_age" id="player_age" class="form-control" />
                    </div>

when I click the edit button, nothing is happen.当我单击编辑按钮时,什么也没有发生。 I have also edited the web.php file我还编辑了web.php文件

Route::get('ajaxdatamanage','AdminController@index')->name('ajax_data_manage');
Route::get('ajaxdatamanage/getdata', 'AdminController@getdata')->name('ajax_data_manage.getdata');
Route::post('ajaxdatamanage/postdata', 'AdminController@postdata')->name('ajax_data_manage.postdata');

Route::get('ajaxdatamanage/fetchdata', 'AdminController@fetchdata')->name('ajax_data_manage.fetchdata')
function fetchdata(Request $request)
{
    $id = $request->input('id');
    $player = Player::find($id);
    $output = array(
        'player_name'    =>  $player->player_name,
        'player_country' =>  $player->player_country,
        'player_age'     =>  $player->player_age
    );
    // try this 
    $update = Player::where('id',$id)->update($output);
    // or 
    $player->player_name;
    $player->player_country;
    $player->player_age;
    $player->save();
    echo json_encode($player);
}

You will get full demo for this and it will help full for you.您将获得完整的演示,它将为您提供全面的帮助。

https://github.com/PriyankPanchal/AJAX-CRUD-Laravel https://github.com/PriyankPanchal/AJAX-CRUD-Laravel

Please clone project from using above link and after clone fire some command as below.请使用上面的链接克隆项目,并在克隆后触发一些命令,如下所示。

1) composer update 2) Set Up env file and set database details in .env file. 1) composer update 2) 设置 env 文件并在 .env 文件中设置数据库详细信息。 3) php artisan migrate 3)php工匠迁移

Hope this demo project will help you.希望这个演示项目能帮到你。 Thanks PHPanchal谢谢 PHPanchal

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM