Как сохранить данные с помощью ajax-запроса в Laravel версии 5.5 - PullRequest
0 голосов
/ 05 октября 2018

Мой ajax-вызов:

$('#password_change_form').submit(function(e) {
    e.preventDefault();
    var saveThis = this;
    $.ajax({
        type: "POST",
        url: "{{ url('/changepassword') }}",
        data: $(saveThis).serialize(),
        success: function(data) {
            $("#password_change_form").trigger("reset");
            alert(data);
        }
    });
}),

Мой метод Controller:

public function changepassword(Request $request){
    $user = Auth::guard()->user();
    $request_data = $request->All();
    $validator = $this->admin_credential_rules($request_data);
    if($validator->fails()) {
        $errors = $validator->errors();
        $errors = json_decode($errors);

        return response()->json([
            'success' => false,
            'message' => $errors
        ], 422);
    } else {

        $current_password = $user->password;
        if(md5($request_data['password']) == $current_password) {
            $user_id = $user->id;
            $obj_user = User::find($user_id);
            $obj_user->password = md5($request_data['new_password']);
            $obj_user->save();

            $msg = "password has been changed";
            return response()->json(array('change_password'=> $msg), 200);
        } else {
            $error = array('error' => array('Heslo, které jste zadali, je neplatné.'));
            return response()->json([
                'modal_message_danger' , "Heslo, které jste zadali, je neplatné.",
                'message' => $error
            ], 422);
        }
    }
}

Когда я нажимаю кнопку отправки в всплывающей форме, он показывает мне предупреждение HTML.Я также приложил снимок экрана с этим предупреждением: здесь мои данные не сохраняются.Я немного растерялся из-за этой проблемы.Пожалуйста, помогите мне относительно этой проблемы.Ваша помощь будет высоко оценена!

Вот скриншот моего оповещения: Alert

1 Ответ

0 голосов
/ 05 октября 2018

Вопрос в том, находится ли ваш javascript в файле blade.php, если его нет в файле blade.php, вы не можете использовать синтаксис блейда:

url: "{{ url('/changepassword') }}",

скобки или действительны только в блейдеобласть шаблона, отсутствующая в вашем js, просто замените ее на

url: "/changepassword",

Далее добавьте проверку, если вы получаете какие-либо данные из вашего javascript, как это в вашем методе контроллера

dd($request->all());

Если он выводитВаши данные, которые вы пытаетесь отправить, работают, если нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...