我有一个简单的博客帖子页面,通过ajax jquery提交数据。 它工作正常,但目前,它在提交后返回json响应。
我需要做的是在提交页面上向用户显示成功消息,然后将其重定向到主要文章页面。
如果我发表评论return Response::json($response);
我会得到一个空白页但我不想自动将他重定向到另一个视图,我想向他显示一条消息5秒然后重定向他。
$("#ajaxResponse").append(msg);
并没有做任何事情。
这是我的控制器
public function store(Requests\ArticleRequest $request)
{
$article = new Article($request->all());
Auth::user()->articles()->save($article);
$response = array(
'status' => 'success',
'msg' => 'Setting created successfully',
);
return \Response::json($response);
}
这是AJAX请求
$(document).ready(function() {
$('#submit').on('submit', function (e) {
e.preventDefault();
var title = $('#title').val();
var body = $('#body').val();
var published_at = $('#published_at').val();
$.ajax({
type: "POST",
url: host + '/articles/create',
data: {title: title, body: body, published_at: published_at},
success: function( msg ) {
$("#ajaxResponse").append(msg);
}
});
});
});
这是视图
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<h1>Write a New Article</h1>
<hr>
{!! Form::open(['url' => 'articles']) !!}
<p>
{!! Form::label('title', 'Title:') !!}
{!! Form::text('title') !!}
</p>
<p>
{!! Form::label('body', 'Body:') !!}
{!! Form::textarea('body') !!}
</p>
<p>
{!! Form::label('published_at', 'Date:') !!}
{!! Form::input('date', 'published_at', date('Y-m-d'), ['class' => 'form-control']) !!}
</p>
<p>
{!! Form::submit('Submit Article', ['id' => 'submit']) !!}
</p>
{!! Form::close() !!}
<h3 id="ajaxResponse"></h3>
@if($errors->any())
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="{{ URL::asset('assets/js/ArticleCreate.js') }}"></script>
答案 0 :(得分:1)
您需要在从服务器返回响应后设置超时。试试这个并根据需要进行调整。见下面的例子。
return \Response::json($response);
在你的js中
$(document).ready(function() {
$('#submit').on('submit', function (e) {
e.preventDefault();
var title = $('#title').val();
var body = $('#body').val();
var published_at = $('#published_at').val();
$.ajax({
type: "POST",
url: host + '/articles/create',
data: {title: title, body: body, published_at: published_at},
success: function( data) {
console.log(data);
if(data.status == 'success') {
alert(data.msg);
setInterval(function () {
alert("Hello");
}, 3000);
}else{
alert('error');
console.log(msg);
}
}
});
});
});
根据需要调整adpat到您的代码。
$(document).ready(function () {
$('.alert-me').click(function () {
setInterval(function () {
alert("Hello");
}, 3000);
});
});