[英]passing data from Javascript to Laravel controller
运行以下代码时,出现MethodNotAllowedHttpException
错误:
<h1>Temp Form</h1>
<form method="post" action="" role="form">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="panel panel-default ">
<div class="container">
<div class="panel-body">
<div class="form-group">
<label for="firstName">First Name *</label>
<input name="fname" type="text" class="form-control" id="firstName" placeholder="Enter First Name" required>
</div>
<div class="form-group">
<label for="lastName">Last Name *</label>
<input name="lname" type="text" class="form-control" id="lastName" placeholder="Enter Last Name" required>
</div>
<div class="form-group">
<label for="qualification">Qualification *</label>
<input name="qualification" type="text" class="form-control" id="qualification" placeholder="BE, MCA, MBA Etc." required>
</div>
<div class="form-group">
<label for="emailAddress">Email address *</label>
<input name="email" type="email" class="form-control" id="emailAddress" placeholder="Enter Email" required>
</div>
<div class="form-group">
<label for="contactmessage">Message</label>
<textarea name="desc" type="text" class="form-control" id="contactmessage" placeholder="Message" rows="2"></textarea>
</div>
<input type="submit" id="add" class="btn btn-primary" onclick="addUpdateData(id)" value="Add"></button>
</div>
</div>
</div>
</form>
用于route.php的代码:
Route::post('welcome/addupdate','FormController@addUpdateData');
控制器代码:
public function addUpdateData(Request $req)
{
$id = $req->input('id');
if($id=="add")
{
$bs = new Basicusers;
$bs->fname = $req->fname;
$bs->lname = $req->lname;
$bs->qualification = $req->qualification;
$bs->email = $req->email;
$bs->desc = $req->desc;
$bs->save();
return "Data Successfully Added";
}
}
我想要的是,当用户单击添加按钮时,传递了变量data
add中的值,并且在控制器上,我将检查变量的值,如果它是add
,则执行添加操作。
同时,如果用户单击下面在表单中提供的edit
按钮,则该行将被填充在表单元素中,并且添加按钮被更改为更新按钮,并且变量data
值现在将被update
并且我要执行更新操作。 。
此外,使用POST方法传递数据时出现错误,我不知道如何使用POST方法传递数据。
对于GET方法,我正在使用$id = Input::get('id');
方法及其工作
这是JavaScript函数:
function addUpdateData(data) {
$(function() {
$.ajax({
method: "post",
url: "welcome/addupdate",
data: {
id: data
},
success: function(response) {
alert(response);
}
});
});
}
尝试在ajax请求中使用绝对路径:url:“ / welcome / addupdate”
为您的表单(例如#form)添加一个ID,然后将表单中的序列化数据传递给addUpdateData函数。
$('#add').on('click', function(e) {
e.preventDefault();
var data = $('#form').serialize();
addUpdateData(data);
});
还将一个输入字段作为隐藏类型添加到表单中,该表单应具有现有资源的ID。 然后,在控制器操作上,您可以获取传递的数据的数组,如果资源的ID存在,则执行更新。 如果没有,则创建它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.