Comment utiliser ajax dans laravel 5.3
Je suis nouveau sur Laravel et je suis à l'aide de Laravel 5.3. Je veux faire un champ de texte où il sera automatiquement suggérer quelques données et lorsque je sélectionne une de données, il va ajouter à un tableau. Je veux envoyer ce tableau à un contrôleur pour une utilisation ultérieure. Pour cela, le
fichier de vue est comme suit:
<head>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(document).ready(function() {
var members = {!! json_encode($member) !!};
console.log(members);
var arr = [];
$("#tags").autocomplete({
source: members,
select: function (event, ui) {
arr.push(ui);
console.log(arr);
}
});
$("#submit").click(function(event){
$.ajax({
type: "POST",
url: '/storeresearch',
data: {selectedMembers: arr},
success: function( msg ) {
console.log(msg);
}
});
});
});
</script>
</head>
<body>
<form id="hu" action="/storeresearch" method="POST">
{!! csrf_field() !!}
<label>Research Author</label>
<input type="text" id="tags" name="researchsupervisor_1" value="">
<input type="submit" name="submit" id="submit" class="btn btn-primary" value="Add">
</form>
</body>
Mon fichier Contrôleur est comme suit:
public function store(Request $request){
if($request->ajax())
{
$mem = $request->all();
return response()->json($mem,200) ;
}
else{
return "not found";
}
Et web.php est suivants:
Route::post('/storeresearch','ResearchController@store');
Mais il semble qu'il n'y a pas d'appel ajax qui se passe. Dans le contrôleur, il entre toujours l'autre section. Qu'est-ce que le problème peut aider quelqu'un?
- changement
<input type="submit">
à<input type="button">
puis essayez - Oui, il déclenche l'appel ajax, mais l'action ne se produit pas. Il reste dans la même page
- C'est ce que l'ajax est synonyme de. Votre page ne s'actualise pas quand vous avez affaire avec ajax
- Ow Merci pour avoir fait de la conception claire. Mais je veux à la fois, quand j'appuie sur le bouton de l'appel ajax et aller vers le contrôleur de retourner quelque chose. Pouvez-vous svp m'aider à ce sujet, comment faire?
- exactement ce que vous avez à faire? désactivez-la.
- En fait, je dois obtenir l'id o les noms sélectionnés. Les noms sélectionnés sont transmis en même temps que le nom et l'id du champ de saisie semi-automatique. Quand je suis à la sélection d'un élément de l'élément sélectionné est ajouté à l'un tableau que je veux passer ce tableau à mon contrôleur pour d'autres opérations lorsque je clique sur le bouton "soumettre".
- Je pense que c'est le cas actuellement. Êtes-vous un quelconque problème?
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme ceci:
Route:
Méthode de contrôleur:
Votre code principalement a l'air bon. Mais il vous manque pour envoyer un jeton csrf avec appel AJAX que vous êtes à l'aide d'une requête POST.
Vous pouvez envoyer jeton csrf avec appel AJAX de cette façon:
Plus d'infos: https://laravel.com/docs/5.3/csrf#csrf-x-csrf-token
Lorsque vous appuyez sur le bouton, est-il vraiment déclenche un appel AJAX? Veuillez vérifier que sur le réseau de l'onglet de navigateur.
J'ai résolu ce problème en procédant comme suit
Quel est votre déclaration d'espace de noms pour la Requête ?
Si c'est
use Illuminate\Http\Request;
essayeruse Request;