【问题标题】:Post with Ajax and Bootstrap Modal in Laravel在 Laravel 中使用 Ajax 和 Bootstrap 模式发布
【发布时间】:2020-08-19 05:22:30
【问题描述】:

我在我的应用程序中使用code.jquery.com/jquery-3.5.0.js,并尝试在不重新加载的情况下发布数据。 没有 ajax 可以正常发布,但是没有 ajax 脚本。

控制器:

public function index()
{
    $tasks = Task::orderBy('id', 'desc')->paginate(9);
    return view('empmodel', compact('tasks'));
}

public function store(Request $request)
{
    $tasks = new Task;
    $tasks->t_title = $request->input('t_title');
    $tasks->project_id = $request->input('project_id');
    $tasks->save();
}

阿贾克斯:

<script type="text/javascript">
$(document).ready(function () {
    $('#addform').on('submit', function(e) {
        e.preventDefault();

        $.ajax({
            type: "POST",
            url: "/addstudent",
            data: $('#addform').serialize(),
            success: function (response) {
                console.log(response)
                $('#studentaddmodal').modal('hide')
                alert("data saved");
            },
            error: function(error) {
                console.log(error)
                alert("Data not saved");
            }
        });
    });
});
</script>
</body>

路线:

Route::get('/tasks', 'projects\ProjectpController@index');
Route::post('/addstudent', 'projects\ProjectpController@store');

当我用project_id 在字段中填写整数时,警报说“数据已保存”,但它没有出现在数据库中。 如果我在project_id 字段中输入文本,那么警报应该是“数据未保存”。 CSRF 令牌没有丢失。我正在使用常规引导模式。

【问题讨论】:

  • 在 store 方法中调试你的代码,检查你在存储时缺少什么。调试将显示确切的错误或警告..

标签: jquery ajax laravel bootstrap-modal


【解决方案1】:

使用parse_str在控制器中解析您从AJAX发送的字符串

将 ajax 的数据定义更改为

data: {
    formData: $('#addform').serialize()
}

在你的控制器方法中

public function store(Request $request)
{
    parse_str($request->formData, $output);
    $tasks = new Task;
    $tasks->t_title = $output['t_title'];
    $tasks->project_id = $output['project_id'];
    $tasks->save();
}

类似问题:How do I PHP-unserialize a jQuery-serialized form?

阅读:https://stackoverflow.com/a/3817220/5808894

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2016-09-18
    • 2015-09-29
    • 1970-01-01
    • 2018-09-07
    • 2018-01-27
    • 1970-01-01
    相关资源
    最近更新 更多