【发布时间】:2016-04-28 14:32:35
【问题描述】:
我有以下使用 get 和 post 请求的 laravel 代码,它有效。我正在尝试为此添加ajax,但我很挣扎。我将如何为此添加ajax?
这是视图中的代码。
<form action="goal" method="post">
<input name="usersID" type="form"> usersID </input> <br>
<input name="goalValue" type="form"> goal </input> <br>
<input name="goalpoints" type="form"> goalpoints </input> <br>
<input name="points" type="form"> points </input> <br>
<input name="activitiesID" type="form"> activitiesID </input> <br>
<button type="submit"> Submit </button>
</form>
这是路由中的代码
Route::get("goal", "PagesController@getGoal");
Route:: post("goal",
["as" => "goal",
"uses" => "tableController@getGoal"]);
这是控制器中的代码
//控制器1
public function getGoal()
{
return view("pages.goal");
}
//控制器2
public function getGoal()
{
$usersID = $_POST["usersID"];
$goal = $_POST["goalValue"];
$goalpoints = $_POST["goalpoints"];
$points = $_POST["points"];
$activitiesID = $_POST["activitiesID"];
DB :: table("goals") -> insert
(
array("usersID" => $usersID, "goal" => $goal, "goalpoints" => $goalpoints, "points" => $points,
"activitiesID" => $activitiesID)
);
return view("pages.goal");
}
【问题讨论】:
-
有几个选项 - 一个选项是导入 jQuery 并使用内置的 $.get](https://api.jquery.com/jquery.get/) and [$.post 方法
-
我已经尝试过两种方法,但是 jQuery 答案会很好,因为它可以与不同的浏览器一起使用
-
@Crwydryn 提供的答案很好。顺便说一句,我会尝试稍微不同地命名控制器中的方法。例如,控制器 2 中的
getGoal(我假设是tableController)可能应该被重命名,因为它sets是目标(可能类似于setGoal())。当控制器开始变得更复杂时,这可能有助于减少混乱。只是一个想法。 -
我还可以建议您查看Laravels Request 类文档并使用它而不是
$_POST['variableName']- 它比直接使用$_POST更安全,并且具有一些不错的功能。