【问题标题】:Database update in laravel using Ajax使用 Ajax 在 laravel 中更新数据库
【发布时间】:2020-04-16 19:28:25
【问题描述】:

我正在关注这个tutorial 来更新或编辑 Laravel 中的数据库表。我已经实现了插入部分如下:

$(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');
                }
            })
        });

在控制器文件中

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);
}

我认为错误在于获取数据。数据库中的 My 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>

当我点击编辑按钮时,什么也没有发生。我还编辑了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')

【问题讨论】:

  • 1.通过将console.log(数据)放入成功函数来检查数据是否来自控制器

标签: php ajax database laravel laravel-6


【解决方案1】:

您将获得完整的演示,它将为您提供完整的帮助。

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

请使用上面的链接克隆项目,并在克隆后触发如下命令。

1) 作曲家更新 2) 设置 env 文件并在 .env 文件中设置数据库详细信息。 3) php 工匠迁移

希望这个演示项目对您有所帮助。 谢谢 PHPanchal

【讨论】:

    【解决方案2】:
    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);
    }
    

    【讨论】:

    • 解释您的代码为何/如何解决 OP 发布的问题将对未来的访问者更有帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2021-04-02
    • 2016-12-15
    • 1970-01-01
    • 2019-07-07
    相关资源
    最近更新 更多