J'ai une liste déroulante à mon avis:
public function search(Request $request) { $search = $request->get('search'); $sort = $request->sort; dd($search, $sort); die; $result = $this -> model -> getSearch($search, $sort); $processData['processData'] = $result; return view('datatracking', $processData); }
Je veux obtenir la valeur lorsque l'utilisateur choisit dans la liste déroulante, dans mon contrôleur, j'ai essayé:
$sort = $request->sort;
Mais quand je choisis dans la liste déroulante et que j'utilise dd ($ sort), cela renvoie null. Comment puis-je obtenir la valeur? Merci!
Mise à jour: voici mon contrôleur complet:
<form action="./sort" method="post"> <div class="sort-dropdown"> <select name="sort"> <option value="">Sort</option> <option value="asc">Ascending</option> <option value="desc">Descending</option> </select> </div> </form>
5 Réponses :
utilisez this et dd ($ array_name);
$array_name->sort = $request->sort;
Encore une erreur. Il dit: "Création d'un objet par défaut à partir d'une valeur vide"
Vous pouvez l'obtenir à partir du tableau
$request['sort'];
désolé mais c'est toujours nul
Je pense que le problème réside dans votre action de forme.
<form action = "your route here" method = "GET"> {{csrf_field ()}} </form>
Je pense que ça va maintenant. Mon seul problème est maintenant l'URL. Après la recherche, mon url est: localhost / activiti / public / search? Search = process , je choisis asc sort et mon url devient: localhost / activiti / public / sort? Sort = asc . Il trie avec mes données complètes et non les données recherchées.
Votre formulaire n'est pas soumis. Pour soumettre le formulaire, vous devez ajouter du javascript.
<form action="./sort" method="post" > <div class="sort-dropdown"> <select name="sort" onchange="this.form.submit()"> <option value="">Sort</option> <option value="asc">Ascending</option> <option value="desc">Descending</option> </select> </div> </form>
c'est toujours nul :(
Vous pouvez toujours profiter de onchange de javascript. Peut-être pimentez-le avec un boîtier d'interrupteur?
Routes / web.php
public function show(Request $request) { switch ($request->sort) { case "asc": // Grab your records accordingly $variable = $x; break; case "desc": // Grab your records accordingly $variable = $y; break; default: // Set a default sort option $variable = $z; break; } return view('datatracking', $variable); }
Lame:
<form action="./sort" method="post"> <!-- pass your csrf token --> @csrf <div class="sort-dropdown input-group"> <!-- note the use of the onchange --> <select name="sort" id="sort" class="form-control" onchange="this.form.submit()"> <option value="">Sort</option> <option value="asc">Ascending</option> <option value="desc">Descending</option> </select> </div> </form>
Votre contrôleur:
Route::post('./sort', 'YourController@show')->name('sort-records');
Je pense que ça va maintenant. Mon seul problème est maintenant l'URL. Après la recherche, mon url est: localhost / activiti / public / search? Search = process, je choisis asc sort et mon url devient: localhost / activiti / public / sort? Sort = asc. Il trie avec mes données complètes et non les données recherchées.
Lancez une autre question @Tomato et je serais heureux de l'étoffer avec vous! C'est une question distincte de celle d'origine.
<select name="sort" id="sort" class="form-control" > <option value="Sort">Sort</option> <option value="asc">Ascending</option> <option value="desc">Descending</option> </select>
Veuillez ne pas publier uniquement le code comme réponse, mais également expliquer ce que fait votre code et comment il résout le problème de la question. Les réponses avec une explication sont généralement plus utiles et de meilleure qualité, et sont plus susceptibles d'attirer des votes positifs.
qu'avez-vous choisi ?? avez-vous essayé
$sort = $request->get('sort');
?Je choisis Asc ou Desc pour afficher la valeur avec dd () mais il renvoie simplement null, j'utilise $ sort = $ request-> get ('sort'); avant. Après avoir recherché un article ici, j'ai changé mais je ne travaille pas trop
montrez votre contrôleur, et de plus pourquoi avez-vous eu ce point unique de fin dans votre action?
Parce que mon url est localhost / activiti / public / procinsttable . Si je n'ai pas ce point dans mon action, lorsque je recherche quelque chose, mon URL sera une erreur. Btw, j'ai mis à jour mon post qui a un contrôleur