Comment passer des données de l'ajax laravel 5.2 contrôleur via la méthode post
Bonjour StackOverflow de la famille. C'est ma première question, et j'espère obtenir de l'aide.
Je suis nouveau sur laravel cadre am et l'aide de la version 5.2 dans mon projet.
Suis en train de passer des données à l'aide de la méthode post de ma fonction ajax à un contrôleur de méthode, mais aucune donnée n'est transmise au contrôleur.
J'ai suivi les étapes dans ce forum https://laracasts.com/discuss/channels/laravel/process-data-in-controller-using-ajax-in-laravel, mais ne peut pas le faire fonctionner. Voici ce que j'ai fait jusqu'à présent.
Mon JavaScript (post_script.js
):
$.ajax({
method: 'POST',
url: './home',
data: {
userID: 76,
userName: 'Jimmy'
},
});
Noter que ce fichier est enregistré dans assets/js
répertoire dans le laravel structure. Voici ce que j'ai dans mon fichier de route (routes.php
):
Route::get('/', "MyController@home");
Route::get('home', "MyController@home");
Voici la fonction que j'ai dans MyController.php
fichier:
function home(Request $request) {
$userID = $request['userID'];
$userName = $request['userName'];
return view('home', [
'userID'=> $userID,
'userName' => $userName
]);
}
De mon point de vue, j'ai essayé d'y accéder comme ceci:
<p>User ID: {{$userID}}</p>
<p>User Name: {{$username}}</p>
Rien ne s'affiche! Merci de ce que je fais mal? J'ai besoin de votre aide. Pardonnez-moi si ma question n'est pas bonne, mais j'espère que vous comprenez ce que je veux dire. Merci
$request
directement dans votre contrôleur?OriginalL'auteur Ochi Fortune | 2016-03-22
Vous devez vous connecter pour publier un commentaire.
Votre AJAX est l'Affichage, mais vous n'avez pas de POSTE route, seulement OBTENIR. Ajouter un POST la route, comme suit:
OriginalL'auteur Don't Panic
D'abord vérifier avec votre développeur/outil de réseau (par exemple. firebug) si votre appel ajax atteint le contrôleur désiré/fonctions, et que les paramètres sont transmis correctement.
Un moyen sûr de spécifier l'Url de l'appel ajax dans le Laravel de l'environnement est l'aide de l'URL de la façade comme ceci:
Afin de le faire comme ceci, cependant, vous devez conserver vos js comme un myscript.blade.php (!!) fichier et @inclure dans votre vue en conséquence.
Pour la réception de votre posté paramètres de la fonction de contrôleur n'est pas nécessaire de déclarer que les arguments de la fonction, vous pouvez simplement utiliser l'Input::Get() fonction par exemple. comme ceci:
OriginalL'auteur Malvolio
Si vous essayez de faire une requête POST, vous pourriez avoir besoin d'avoir
X-CSRF-Token
.Ajouter à meta:
Et l'installation de votre AJAX:
Dans Laravel docs: https://laravel.com/docs/5.2/routing#csrf-x-csrf-token
OriginalL'auteur user2058653
Abord, vous devez configurer le type de données pour les requêtes ajax comme ceci (si vous utilisez jQuery)
puis essayez d'utiliser votre contrôleur de suivre
et voir le résultat
Vous pouvez également utiliser Input::get() :
OriginalL'auteur Ivan Wong
vous pouvez utiliser le nom de l'itinéraire pour transmettre vos données au contrôleur
OriginalL'auteur Abdelghafour Ennahid