如何在 Laravel 5.2 中发送多个参数 AJAX
How to send multiple parameter AJAX in Laravel 5.2
如何为 AJAX Laravel 发送多个值。
例如:
$('#submit_').on('click', function (e) {
e.preventDefault();
var form_data = $('#create').serialize();
var form_taxonomy = 'category';
$.ajax({
headers: {
'X-CSRF-Token': $('input[name="_token"]').val()
},
type: 'post',
url: '{!! URL::route('category') !!}',
data: {formData:form_data,formTaxonomy: form_taxonomy},
success: function () {
$('#append').load('{!! URL::route('loadCat') !!}');
},
error: function (xhr, status, errorThrown) {
alert(JSON.parse(xhr.responseText).category[0]);
}
});
jQuery("#create").val('');
});
控制器代码:
public function create(messageRequest $request)
{
if($request->ajax()) {
$name = Input::get('formData');
$taxonomy = Input::get('formTaxonomy');
return response()->json($name, $taxonomy);
}
}
html代码:
<div class="col-sm-6">
<form method="POST" action="http://localhost:8000/category" accept-charset="UTF-8"><input name="_token"
value="IzByO9fU5yeanaVCudCQpkL5bXGzUh9B4jb400iU"
type="hidden">
<div class="form-group">
<div class="form-group">
<input class="form-control text-right" id="create" name="category" type="text">
</div>
<div id="submit_"><input name="createSub" id="submit" class="btn btn-primary" value="submit" type="submit">
</div>
</div>
</form>
消息请求验证:
public function rules()
{
return array(
'category'=>'required|alpha|unique:taxonomies,name',
);
}
public function messages(){
return [
'category.required'=>'fill',
'category.alpha'=>'only charecter',
'category.unique'=>'dublicate'
];
}
此代码无效。我用了我的其他例子,但没有人不回应问题是我不知道laravel中的参数数据如何调用不会面临错误并存储在数据库中的金额。
像这样更改您的数据部分:
data: {'formData':form_data,'formTaxonomy': form_taxonomy},
您已经序列化了生成 name=value&name=value
查询字符串格式的表单。看起来您随后想要将数据添加到此查询字符串以供提交。您将需要稍微手动执行此操作,但可以这样做:
$('#submit_').on('click', function (e) {
e.preventDefault();
var form_data = $('#create').serialize();
var form_taxonomy = 'category';
$.ajax({
headers: {
'X-CSRF-Token': $('input[name="_token"]').val()
},
type: 'post',
url: '{!! URL::route('category') !!}',
// manually combine your form data and your additional post data
// into one query string
data: form_data + '&' + $.param({formTaxonomy: form_taxonomy}),
success: function () {
$('#append').load('{!! URL::route('loadCat') !!}');
},
error: function (xhr, status, errorThrown) {
alert(JSON.parse(xhr.responseText).category[0]);
}
});
jQuery("#create").val('');
});
编辑
对于您现有的代码,您遇到的问题是您的 messageRequest
验证表明 category
字段是必需的,但您的请求数据没有 category
场地。因此,您的验证失败,并且将 return 一个包含验证错误的 JSON 对象的 422
响应。
使用上面更新的代码,您的请求数据现在有一个 category
字段,因此验证通过,但您的代码中有一些其他错误会生成 500 错误。您需要追踪并修复它,这可能需要另一个问题。
您正在使用 FormRequests 作为该控制器方法的验证。在这种情况下,您的 FormRequest 是:MessageRequest - 其中包含一个名为 category
的验证参数。
当您的 ajax 提交发生时,它没有提供 category
字段,因此验证失败。
要进行测试,请尝试向 ajax 数据提供类别数据:
data: {formData:form_data,formTaxonomy: form_taxonomy, category: 'somevalue-unique-to-your-taxonomies'},
如何为 AJAX Laravel 发送多个值。 例如:
$('#submit_').on('click', function (e) {
e.preventDefault();
var form_data = $('#create').serialize();
var form_taxonomy = 'category';
$.ajax({
headers: {
'X-CSRF-Token': $('input[name="_token"]').val()
},
type: 'post',
url: '{!! URL::route('category') !!}',
data: {formData:form_data,formTaxonomy: form_taxonomy},
success: function () {
$('#append').load('{!! URL::route('loadCat') !!}');
},
error: function (xhr, status, errorThrown) {
alert(JSON.parse(xhr.responseText).category[0]);
}
});
jQuery("#create").val('');
});
控制器代码:
public function create(messageRequest $request)
{
if($request->ajax()) {
$name = Input::get('formData');
$taxonomy = Input::get('formTaxonomy');
return response()->json($name, $taxonomy);
}
}
html代码:
<div class="col-sm-6">
<form method="POST" action="http://localhost:8000/category" accept-charset="UTF-8"><input name="_token"
value="IzByO9fU5yeanaVCudCQpkL5bXGzUh9B4jb400iU"
type="hidden">
<div class="form-group">
<div class="form-group">
<input class="form-control text-right" id="create" name="category" type="text">
</div>
<div id="submit_"><input name="createSub" id="submit" class="btn btn-primary" value="submit" type="submit">
</div>
</div>
</form>
消息请求验证:
public function rules()
{
return array(
'category'=>'required|alpha|unique:taxonomies,name',
);
}
public function messages(){
return [
'category.required'=>'fill',
'category.alpha'=>'only charecter',
'category.unique'=>'dublicate'
];
}
此代码无效。我用了我的其他例子,但没有人不回应问题是我不知道laravel中的参数数据如何调用不会面临错误并存储在数据库中的金额。
像这样更改您的数据部分:
data: {'formData':form_data,'formTaxonomy': form_taxonomy},
您已经序列化了生成 name=value&name=value
查询字符串格式的表单。看起来您随后想要将数据添加到此查询字符串以供提交。您将需要稍微手动执行此操作,但可以这样做:
$('#submit_').on('click', function (e) {
e.preventDefault();
var form_data = $('#create').serialize();
var form_taxonomy = 'category';
$.ajax({
headers: {
'X-CSRF-Token': $('input[name="_token"]').val()
},
type: 'post',
url: '{!! URL::route('category') !!}',
// manually combine your form data and your additional post data
// into one query string
data: form_data + '&' + $.param({formTaxonomy: form_taxonomy}),
success: function () {
$('#append').load('{!! URL::route('loadCat') !!}');
},
error: function (xhr, status, errorThrown) {
alert(JSON.parse(xhr.responseText).category[0]);
}
});
jQuery("#create").val('');
});
编辑
对于您现有的代码,您遇到的问题是您的 messageRequest
验证表明 category
字段是必需的,但您的请求数据没有 category
场地。因此,您的验证失败,并且将 return 一个包含验证错误的 JSON 对象的 422
响应。
使用上面更新的代码,您的请求数据现在有一个 category
字段,因此验证通过,但您的代码中有一些其他错误会生成 500 错误。您需要追踪并修复它,这可能需要另一个问题。
您正在使用 FormRequests 作为该控制器方法的验证。在这种情况下,您的 FormRequest 是:MessageRequest - 其中包含一个名为 category
的验证参数。
当您的 ajax 提交发生时,它没有提供 category
字段,因此验证失败。
要进行测试,请尝试向 ajax 数据提供类别数据:
data: {formData:form_data,formTaxonomy: form_taxonomy, category: 'somevalue-unique-to-your-taxonomies'},