在Laravel 5.8中正确地编写一篇Ajax帖子,需要以下步骤:
routes/web.php
文件中添加以下代码:Route::post('/ajax/post', 'PostController@store')->name('ajax.post');
php artisan make:controller PostController
在app/Http/Controllers/PostController.php
文件中,添加以下代码:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
class PostController extends Controller
{
public function store(Request $request)
{
// 获取Ajax请求中的数据
$data = $request->all();
// 创建新的帖子
$post = new Post;
$post->title = $data['title'];
$post->content = $data['content'];
$post->save();
// 返回成功响应
return response()->json(['success' => true]);
}
}
<form id="postForm" method="POST" action="{{ route('ajax.post') }}">
@csrf
<input type="text" name="title" placeholder="标题">
<textarea name="content" placeholder="内容"></textarea>
<button type="submit">提交</button>
</form>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$('#postForm').submit(function(e) {
e.preventDefault();
// 获取表单数据
var formData = $(this).serialize();
// 发送Ajax请求
$.ajax({
url: $(this).attr('action'),
type: 'POST',
data: formData,
success: function(response) {
// 处理成功响应
alert('帖子已成功提交!');
},
error: function(xhr) {
// 处理错误响应
alert('提交失败,请重试!');
}
});
});
});
</script>
以上代码中,我们使用了jQuery库来简化Ajax请求的处理。在表单提交时,通过serialize()
方法将表单数据序列化,并通过Ajax发送到服务器端。
这样,当用户提交表单时,将会通过Ajax请求将数据发送到PostController
的store
方法中进行处理。在该方法中,我们首先获取Ajax请求中的数据,然后创建一个新的帖子并保存到数据库中。最后,返回一个成功的响应给前端。
请注意,以上代码仅为示例,实际应用中可能需要根据具体需求进行适当的修改和验证。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云数据库(TencentDB)。
领取专属 10元无门槛券
手把手带您无忧上云