【问题标题】:How can I send a html selector's option into Controller using JavaScript?如何使用 JavaScript 将 html 选择器的选项发送到 Controller?
【发布时间】:2019-01-15 05:30:48
【问题描述】:

我的 Selector 视图中有多个城市选项,我需要在 Controller 方法中使用城市名称。单击按钮时将触发我要使用的 JavaScript 函数。以前,我用过

window.location = "/results";

在我的 JavaScript 中,“/results”是我在其中使用 Controller 的路由。但您显然不能以这种方式向 Controller 发送任何数据(或者可以吗?)。我可以在网上找到的唯一方法是使用 ajax,但我想尽可能远离 ajax。那么我该如何实现呢?

【问题讨论】:

  • 您是在问如何用纯 JavaScript 发出 http POST 请求吗?如果是这样,请参阅MDN Web API Reference - XMLHttpRequest。
  • 或者您是在问如何将数据放入 URL,例如window.location = "/results?select=1"?
  • 我一般都在询问任何可能有帮助的方法。谢谢。

标签: javascript html laravel frontend


【解决方案1】:

由于没有人回答这个问题,我尝试了运气并找到了解决方案。所以我们需要做的是首先,获取我们需要的选择器的值,然后使用 URL 将它发送到我们的控制器中。这是通过单击按钮触发的 JavaScript 函数:

var city = document.getElementById('citypicker').value;
window.location.href = "/results/"+city;

第一行检索 id 为 'citypicker' 的选择器的值,将其存储在 city 变量中,然后我们重定向到包含该 city 变量的 URL .所以每次我们选择另一个值时,这个 URL 都会改变。

在路由中,我们这样定义这个 URL:

Route::get('/results/{city}', 'ResultsController@city');

{city} 是可变的,这意味着它可以改变并且可以用作ResultsController 中city 方法的输入。所以方法看起来像这样:

public function city($city) {
    //code here
}

也没有使用 ajax。希望这会有所帮助。

【讨论】:

  • Stack Exchange 一直明确鼓励用户回答自己的问题。见Can I answer my own question?
  • 谢谢@georgeawg。是的,我认为将来有人可能需要解决方案,这可能会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
相关资源
最近更新 更多