laravel pass选择选项值以形成动作参数

laravel pass选择选项值以形成动作参数,laravel,Laravel,我正在制作一个带有选择选项的页面。 如果我选择一个选项并单击一个按钮。它将转到url中带有参数的页面 我想知道是否有任何简单的方法可以将categoryId作为参数插入到操作中 <form method="GET" action="{{ route('routename', ['categoryId' => 1]) }}"> @foreach($categories as $category) <select> <option value="1">

我正在制作一个带有选择选项的页面。 如果我选择一个选项并单击一个按钮。它将转到url中带有参数的页面

我想知道是否有任何简单的方法可以将categoryId作为参数插入到操作中

<form method="GET" action="{{ route('routename', ['categoryId' => 1]) }}">
@foreach($categories as $category)
<select>
    <option value="1">{{ $category->name }}</option>
    <option value="2">{{ $category->name }}</option>
    <option value="3">{{ $category->name }}</option>
</select>
@endforeach

<button>Change</button>

</form>

@foreach($categories作为$category)
{{$category->name}
{{$category->name}
{{$category->name}
@endforeach
改变
您的路线过于具体 您应该从管线中删除categoryId。相反,您应该将路由指向只接受请求的控制器。然后,您可以读取控制器中选择框的值,并根据所选选项将用户引导到视图

你的看法:

<form method="GET" action="{{ route('routename') }}">
@csrf
<select name='selectOption'>
@foreach($categories as $category)
    <option value="{{ $category->id }}">{{ $category->name }}</option>
</select>
@endforeach

<button>Change</button>

</form>
您的控制器:

use Illuminate\Http\Request;
public function functionName(Request $request)
{

  $option = $request->selectOption;

  if($option == 1){
    CODE FOR OPTION 1 HERE
  }
}
这样,路由就不需要在URL中定义参数。相反,您可以在请求中将其作为参数传递,以便在控制器中读取。然后,您可以为每个选项设置一个if规则,然后返回不同的视图。

您的路线太具体了 您应该从管线中删除categoryId。相反,您应该将路由指向只接受请求的控制器。然后,您可以读取控制器中选择框的值,并根据所选选项将用户引导到视图

你的看法:

<form method="GET" action="{{ route('routename') }}">
@csrf
<select name='selectOption'>
@foreach($categories as $category)
    <option value="{{ $category->id }}">{{ $category->name }}</option>
</select>
@endforeach

<button>Change</button>

</form>
您的控制器:

use Illuminate\Http\Request;
public function functionName(Request $request)
{

  $option = $request->selectOption;

  if($option == 1){
    CODE FOR OPTION 1 HERE
  }
}

这样,路由就不需要在URL中定义参数。相反,您可以在请求中将其作为参数传递,以便在控制器中读取。然后,您可以为每个选项设置一个if规则,然后返回不同的视图。

因为Blade使用PHP,而PHP是一种后端语言,所以它不会在您的浏览器中运行。相反,您需要javascript来处理它,它在客户端的浏览器中运行。因为Blade使用PHP,而PHP是一种后端语言,所以它不会在您的浏览器中运行。相反,您需要javascript来处理它,它在客户端的浏览器中运行。