Par*_*ars 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()
}, function(data) {
$('#content').prepend('<p>' + data + '</p>');
});
});
Run Code Online (Sandbox Code Playgroud)
这段代码将数据发送到URL /并且运行良好.但我想将它发送到Route.Name,该路由将其发送到控制器@动作.
无论如何还是有办法解决这个问题吗?
在你的路线,
Route::get('data', array('uses' => 'HomeController@store'));
Run Code Online (Sandbox Code Playgroud)
在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
}
}
Run Code Online (Sandbox Code Playgroud)
最后剧本,
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>');
});
});
Run Code Online (Sandbox Code Playgroud)