IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

[6] ajax et URL, quel fichier de code est appelé ?


Sujet :

Laravel PHP

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [6] ajax et URL, quel fichier de code est appelé ?
    Bonjour,

    Je continue mon apprentissage de Laravel, j'en suis arrivé à AJAX.

    J'ai une question par rapport au code ci-dessous :

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
                url: 'tasks',

    Je connais bien ajax avec PHP (sans framework), mais ici, c'est quoi qui est appelé ? le controller ? le model ou autre ?

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    $(document).ready(function() {
        $("#btn-add").click(function() 
        {
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                type: 'POST',
                url: 'tasks',
                data: {
                    task: $("#frmAddTask input[name=task]").val(),
                    description: $("#frmAddTask input[name=description]").val(),
                },
                dataType: 'json',
                success: function(data) 
                {
                    $('#frmAddTask').trigger("reset");
                    $("#frmAddTask .close").click();
                    window.location.reload();
                },
                error: function(data) 
                {
                    console.log(data);
                    var errors = $.parseJSON(data.responseText);
                    $('#add-task-errors').html('');
                    $.each(errors.messages, function(key, value) {
                        $('#add-task-errors').append('<li>' + value + '</li>');
                    });
                    $("#add-error-bag").show();
                }
            });
        });
        $("#btn-edit").click(function() {
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                type: 'PUT',
                url: 'tasks/' + $("#frmEditTask input[name=task_id]").val(),
                data: {
                    task: $("#frmEditTask input[name=task]").val(),
                    description: $("#frmEditTask input[name=description]").val(),
                },
                dataType: 'json',
                success: function(data) {
                    $('#frmEditTask').trigger("reset");
                    $("#frmEditTask .close").click();
                    window.location.reload();
                },
                error: function(data) {
                    var errors = $.parseJSON(data.responseText);
                    $('#edit-task-errors').html('');
                    $.each(errors.messages, function(key, value) {
                        $('#edit-task-errors').append('<li>' + value + '</li>');
                    });
                    $("#edit-error-bag").show();
                }
            });
        });
        $("#btn-delete").click(function() {
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                type: 'DELETE',
                url: 'tasks/' + $("#frmDeleteTask input[name=task_id]").val(),
                dataType: 'json',
                success: function(data) {
                    $("#frmDeleteTask .close").click();
                    window.location.reload();
                },
                error: function(data) {
                    console.log(data);
                }
            });
        });
    });
     
    function addTaskForm() {
        $(document).ready(function() {
            $("#add-error-bag").hide();
            $('#addTaskModal').modal('show');
        });
    }
     
    function editTaskForm(task_id) {
        $.ajax({
            type: 'GET',
            url: 'tasks/' + task_id,
            success: function(data) {
                $("#edit-error-bag").hide();
                $("#frmEditTask input[name=task]").val(data.task.task);
                $("#frmEditTask input[name=description]").val(data.task.description);
                $("#frmEditTask input[name=task_id]").val(data.task.id);
                $('#editTaskModal').modal('show');
            },
            error: function(data) {
                console.log(data);
            }
        });
    }
     
    function deleteTaskForm(task_id) {
        $.ajax({
            type: 'GET',
            url: 'tasks/' + task_id,
            success: function(data) {
                $("#frmDeleteTask #delete-title").html("Delete Task (" + data.task.task + ")?");
                $("#frmDeleteTask input[name=task_id]").val(data.task.id);
                $('#deleteTaskModal').modal('show');
            },
            error: function(data) {
                console.log(data);
            }
        });
    }

    Voici quelques bouts de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
     
    /*
    |--------------------------------------------------------------------------
    | Web Routes
    |--------------------------------------------------------------------------
    |
    | Here is where you can register web routes for your application. These
    | routes are loaded by the RouteServiceProvider within a group which
    | contains the "web" middleware group. Now create something great!
    |
    */
     
     
     
    Route::get('/', [
        'uses' => 'TasksController@index',
        'as' => 'tasks.index',
    ]);
     
     
    Route::group(['prefix' => 'tasks'], function () {
        Route::get('/{id}', [
            'uses' => 'TasksController@show',
            'as'   => 'tasks.show',
        ]);
     
        Route::post('/', [
            'uses' => 'TasksController@store',
            'as'   => 'tasks.store',
        ]);
     
        Route::put('/{id}', [
            'uses' => 'TasksController@update',
            'as'   => 'tasks.update',
        ]);
     
        Route::delete('/{id}', [
            'uses' => 'TasksController@destroy',
            'as'   => 'tasks.destroy',
        ]);
    });
    TaskController.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    <?php
     
    namespace App\Http\Controllers;
     
    use App\Task;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Validator;
     
    class TasksController extends Controller
    {
        public function index(Request $request)
        {
            $tasks = Task::orderBy('id', 'desc')->paginate(5);
     
            return view('tasks')->with('tasks',$tasks);
        }
     
        public function store(Request $request)
        {
            $validator = Validator::make($request->input(), array(
                'task' => 'required',
                'description' => 'required',
            ));
     
            if ($validator->fails()) {
                return response()->json([
                    'error'    => true,
                    'messages' => $validator->errors(),
                ], 422);
            }
     
            $task = Task::create($request->all());
     
            return response()->json([
                'error' => false,
                'task'  => $task,
            ], 200);
        }
     
        public function show($id)
        {
            $task = Task::find($id);
     
            return response()->json([
                'error' => false,
                'task'  => $task,
            ], 200);
        }
     
        public function update(Request $request, $id)
        {
            $validator = Validator::make($request->input(), array(
                'task' => 'required',
                'description' => 'required',
            ));
     
            if ($validator->fails()) {
                return response()->json([
                    'error'    => true,
                    'messages' => $validator->errors(),
                ], 422);
            }
     
            $task = Task::find($id);
     
            $task->task        =  $request->input('task');
            $task->description = $request->input('description');
     
            $task->save();
     
            return response()->json([
                'error' => false,
                'task'  => $task,
            ], 200);
        }
     
        public function destroy($id)
        {
            $task = Task::destroy($id);
     
            return response()->json([
                'error' => false,
                'task'  => $task,
            ], 200);
        }
    }

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Salut, alors l'url

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    type: 'POST',
    url: 'tasks',
    Si c'est bien de celle-ci qu'on parle, renvoie à la route déclaré ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Route::group(['prefix' => 'tasks'], function () {
        Route::get('/{id}', [
            'uses' => 'TasksController@show',
            'as'   => 'tasks.show',
        ]);
     
        Route::post('/', [
            'uses' => 'TasksController@store',
            'as'   => 'tasks.store',
        ]);
    La route POST qui s'appelle '/' , car le prefix est task .... donc http://monprojet.com/task équivaut à prefix -> task -> /

    donc cela va pointer sur le controller TaskController et la méthode store ...... je te conseille de donner des noms à tes routes...c'est plus simple.

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut,

    Un tout grand merci.

    Je mets en résolu.

    Bee

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Voir à quel endroit une classe est appelé
    Par Jéjé34 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 18/03/2015, 20h54
  2. Comment repérer dans quel fichier se situe une ligne de code
    Par Atilili dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/08/2012, 20h14
  3. [AJAX] ajout div en javascript modifiant code du fichier
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/09/2007, 18h40
  4. Réponses: 4
    Dernier message: 26/01/2004, 13h50
  5. Quel éditeur de code "multilanguage" ?
    Par biboun dans le forum Langages de programmation
    Réponses: 12
    Dernier message: 14/11/2002, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo