Сообщение с Ajax и Bootstrap Модальное в Laravel - PullRequest
0 голосов
/ 04 мая 2020

Я использую 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();
}

Ajax:

<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 не пропущен. Я использую обычный bootstrap Модал.

1 Ответ

0 голосов
/ 04 мая 2020

Анализ строки, которую вы отправляете с AJAX в контроллере, используя parse_str

Измените определение данных вашего ajax на

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

и в вашем методе Controller

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

Аналогичный вопрос: Как мне PHP -сериализовать jQuery -сериализованную форму?

Читать: { ссылка }

...