Как отправить переключенные данные, чтобы изменить статус моего логического значения в моем MySQL через Ajax?

Я хотел бы изменить статус своего логического значения в моем msql5.7, когда я нажимаю кнопку в моем представлении.

Я хочу, чтобы, когда я нажимаю на свою кнопку, значение моего логического значения переключается (переключается между 0 и 1)

Вот мой код ajax (мой Dashboard.blade.php)

function reply_click(clicked_id){
    $(function() {
        $('#openButton').on('click', function(data) {
            $.get("test.php", {clicked_id);
        });
    });
}

мой DashboardController.php

class DashboardController extends Controller
{   
    public function index() {  
        return view('dashboard');
    }
}

мой файл миграции

public function up()
{
    Schema::create('chaves',function (Blueprint $table){
        $table -> increments('id');
        $table -> string('nome');
        $table -> boolean('alugado');
        $table -> timestamps();
    });
}

мой маршрут

Route::get("dashboard", "DashboardController@index")->name("dashboard")->middleware('auth');

вы имеете в виду, что если вы нажмете кнопку .. логическое значение в вашей таблице БД изменится? или что?

Saengdaet 02.05.2018 04:48

@JamesRiady, именно так !!

user9717890 02.05.2018 19:07
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
93
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

 $(document).on('click', '.update', function() {
            var user_id = $(this).attr("id");
              function () {
                    $.ajax({
                        url: "{!! url('your_url' ) !!}" + "/" +id,
                        method: "POST",
                        data: {id: id, "_token": "{{ csrf_token() }}", _method: 'PATCH'},
                        success: function (data) {

                        }
                    });

                },
                function () {
                    return false;
                });
        });

Считаю, что решение находится на уровне контроллера.

user9717890 02.05.2018 20:37
Ответ принят как подходящий

JQuery

function reply_click(clicked_id){
        $(function() {
            $.ajaxSetup({
               headers: {
                  'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
               }
            });
            $('#openButton').on('click', function(data) {
                $.ajax({
                  type: "PATCH",
                  url: "/dashboard"
                })
                .done(function(data){
                    console.info(data);
                })
                .fail(function(data){
                    console.info('Error:', data);
                });
            });
        });
    }    

Контроллер

use App\Chave; //use this if you have model
use Illuminate\Support\Facades\DB; //use this if you don't have model
class DashboardController extends Controller
{   
    public function index() { 
        $dashboard = Chave::first(); //use this if you have model
        $dashboard = DB::table('chaves')->first();
        $dashboard->alugado = 1;
        $dashboard->save();
        return view('dashboard');
    }
}

Маршрутизатор

Route::patch("dashboard", "DashboardController@index")->name("dashboard")->middleware('auth');

Я думаю, что вам нужно использовать метод Patch, а не использовать Get в вашем маршрутизаторе .. потому что в этом случае вы пытаетесь выполнить обновление, но не обновите все ..

Метод Put используется для частичного обновления ресурса

Я получил ошибку синхронизации: Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpE‌ xception, я считаю, что это связано с методом исправления

user9717890 03.05.2018 05:34

Я добавил в свой код ajaxsetup ... давай попробуем еще раз

Saengdaet 03.05.2018 05:37

давайте попробуем сделать return response()->json($dashboard); ниже $dashboard = Dashboard::first(); и посмотрим, что он вернет

Saengdaet 03.05.2018 05:50

как насчет изменения метода на получение?

Saengdaet 03.05.2018 06:02

Хорошо, я изменил method type: "PATCH" на type: "GET" и перешел на Route :: get, поэтому я получил еще одну ошибку в моем DashboardController.php -> 'Class' App \ Http \ Controllers \ Dashboard 'not found »

user9717890 03.05.2018 06:09

в этой строке -> $dashboard = Dashboard::first();

user9717890 03.05.2018 06:13

почему вы меняете название модели на Dashboard .. посмотрите на мой ответ .. Я поменяю его на Chave .. когда вы делаете миграцию, вы тоже должны сделать модель .. имя модели совпадает с именем миграции .. когда вы название миграции - chaves, название вашей модели должно быть Chave.

Saengdaet 03.05.2018 06:35

У меня нет модели, я только что создал файл миграции. import App\Chave; возвращает ошибку от моего контроллера -> {"resource": "/app/Http/Controllers/DashboardController.php", -> syntax error, unexpected 'App' (T_STRING),

user9717890 03.05.2018 06:59

возможно, вам следует начать с начала ... удалите созданную вами модель и удалите миграцию ... затем сделайте это в командной строке php artisan make: model Chave. Это создаст модель и миграцию, затем введите свое поле в файл миграции и перенесите его .. и попробуйте снова запустить свой код.

Saengdaet 03.05.2018 07:03

Если вы не хотите использовать модель ... посмотрите мой код еще раз .. Я добавлю свой код

Saengdaet 03.05.2018 07:04

Я создал пустой шаблон, как вы мне советовали, и он сработал, я смог изменить значение первого поля в моей таблице, спасибо!

user9717890 03.05.2018 15:08

Другие вопросы по теме