Php 阿贾克斯邮政路线在拉雷维尔4
我将使用ajax向当前页面发送一些数据,以便在数据库中插入内容。Php 阿贾克斯邮政路线在拉雷维尔4,php,ajax,laravel,laravel-4,Php,Ajax,Laravel,Laravel 4,我将使用ajax向当前页面发送一些数据,以便在数据库中插入内容。 假设以下ajax代码: $('#newPost :submit').click(function(e){ var BASE = 'http://localhost/project/public/'; e.preventDefault(); $.post(BASE, { 'message' : $('#newPost textarea.message').val()
假设以下ajax代码:
$('#newPost :submit').click(function(e){
var BASE = 'http://localhost/project/public/';
e.preventDefault();
$.post(BASE, {
'message' : $('#newPost textarea.message').val()
}, function(data) {
$('#content').prepend('<p>' + data + '</p>');
});
});
$('newPost:submit')。单击(函数(e){
var BASE=http://localhost/project/public/';
e、 预防默认值();
$员额(基数:{
'message':$('#newPost textarea.message').val()
},函数(数据){
$('#content')。前置(''+data+'');
});
});
这段代码将数据发送到URL/并且运行良好。但是我想把它发送到一个路由。Name哪个路由将它发送到一个controller@action.在你的路线中,是否有这样做的方法或解决办法
Route::get('data', array('uses' => 'HomeController@store'));
在HomeController中
public function store() {
$input = Input::all(); // form data
// validation rules
$rules = array(
'email' => 'required|email',
'name' => 'required',
);
$validator = Validator::make($input, $rules); // validate
// error handling
if($validator->fails()) {
if(Request::ajax()) { // it's an ajax request
$response = array(
'response' => 'error',
'errors' => $validator->errors()->toArray()
);
} else { // it's an http request
return Redirect::intended('data')
->withInput()
->withErrors($validator);
}
} else { // validated
// save data
}
}
最后是剧本
var root_url = "<?php echo Request::root(); ?>/"; // put this in php file
$('#newPost :submit').click(function(e){
var BASE = root_url + 'data';
e.preventDefault();
$.post(BASE, {
'message' : $('#newPost textarea.message').val()
}, function(data) {
$('#content').prepend('<p>' + data + '</p>');
});
});
var root_url=“/”;//把这个放到php文件中
$('newPost:submit')。单击(函数(e){
var BASE=root_url+“数据”;
e、 预防默认值();
$员额(基数:{
'message':$('#newPost textarea.message').val()
},函数(数据){
$('#content')。前置(''+data+'');
});
});
您可以更改
var BASE = 'http://localhost/project/public/';
到
注意使用而不是使用
url::to('controller/action')构建url
这是Laravel 4语法吗?因此我需要使用Request::ajax()检查它是否是ajax请求。在常规使用中,为了发回错误,我使用了$errors->has,在ajax提交之后,我如何能够访问$errors?!如果有错误或没有错误,您可以发送不同的响应,因此我需要使用Request::ajax()检查它是否是ajax请求。在常规使用中,为了发回我使用的错误,$errors->has
,在提交ajax之后,我如何能够访问$errors?!
var BASE = '<php echo URL::route("name");?>'
Route::post('action', array('as' => 'name', 'uses' => 'HomeController@action'));