Autour de Laravel

Utiliser la fonction d'un controller en Ajax

Avatar de StephaneMarry
StephaneMarry

Bonjour tout le monde.

J'ai un dashboard avec une to-do-liste et je peux changer l'ordre en glissé-déposé avec JQuery UI. J'aimerais enregistrer l'ordre dans ma base de donnée quand je déplace un élément.

Chaque tache à un ordre enregistré dans la base de données et ensuite j'affiche la liste sur mon dashboard dans l'ordre.

Je ne vois pas quelle url mettre dans ma requette ajax pour appeler la fonction de mon controller. Je suis un peu perdu :s

Merci pour votre aide :)

Posté il y a 1 mois
Avatar de KYoann
KYoann

Salut,

Défini une route de type post qui pointe vers la methode voulu de ton controller.

La méthode de ton controller recevra un objet Request classique, comme lorsque tu soumet un formulaire en post.

Posté il y a 1 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Je suis d'accord avec KYoann. Je rajoute sumplement que, à la différence d'une route classique, tu ne vas pas retourner une vue (enfin c'est possible d'insérer un bout de vue, par exemple pour un chat) mais simplement des data.

Du coup au lieu de faire return view('mavue',$madata); tu vas faire return $madata; (eventuellement avec un json_encode($madata); avant le return)

Posté il y a 1 mois
Avatar de KYoann
KYoann

Il m'arrive fréquement de renvoyer une route même en ajax par souci de simpliciter de code javascript

public function htmlListeOptionReferenceFabricant(Request $request){

        $referencesfabricant = Referencesfabricant::where('fabricant_id',$request->fabricant_id)->get();

        return response()->json(['html' => view('commun.liste-option.referencefabricant_liste_option', compact('referencesfabricant'))->render()]);
    }
Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Je fais comme ça aussi en général, renvoyer une vue générée, ça simplifie le code, on peut même écrire directement :

return ['html' => view('commun.liste-option.referencefabricant_liste_option', compact('referencesfabricant'))->render()];

Laravel comprend qu'il doit renvoyer du JSON :)

Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.