jQuery get()请求在提交新数据之前检索数据
jQuery get() request retrieves data before the new data has been submitted
标题可能有点模糊,很抱歉,请允许我解释一下。
我有一个users_status_likes
表,其中包含以下列:id、user_id、status_id
这个想法很简单,当用户单击状态的类似按钮时,数据将被提交到数据库,其中包含状态的登录user_id
和status_id
。
现在,我正在尝试执行get()
请求,以检索状态的点赞数。问题是,get请求正在检索添加新点赞之前状态的点赞数。
例如,有一个状态有1个赞,但我单击了赞按钮,所以现在它有2个赞,表中有2行用于相同的status_id
,但每个都有不同的user_id
。当我点击点赞按钮时,控制台显示count 1
,但实际上应该是count 2
,因为我只是喜欢状态和数据已经提交到表中。
我正在使用Laravel 5.2,所以让我从发布路线开始
Route::get('likestatusCount/{id}', 'FeedController@getlikesCounter');
FeedController
中的getlikesCounter()
方法
public function getlikesCounter($id) {
$status = Status::find($id);
return Response::json(['count' => StatusLikes::where('status_id', $status->id)->count()]);
}
以及视图内的表单
{!! Form::open(['action' => 'FeedController@likeStatus', 'id' => 'like_form', 'class' => 'likeform']) !!}
<button type="submit" class="btn btn-info btn-xs like" data-user="{{ Auth::user()->id }}" data-status="{{ $status->id }}" id="like-status">
<i class="fa fa-thumbs-up"></i> <span class="like-button-text">Like</span> <span class="like-button-counter">({{ $likes_count }})</span>
</button>
{!! Form::close() !!}
javascript
$('.likeform').submit(function(e) {
e.preventDefault();
var submitBtn = $(this).find('.like');
var likeText = $(this).find('span.like-button-text');
var likeCounter = $(this).find('span.like-button-counter');
var status_id = submitBtn.data('status');
var user_id = submitBtn.data('user');
var token = $('input[name=_token]').val();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': token
}
});
$.ajax({
url: 'http://localhost/socialnet/public/likeStatus',
method: 'POST',
cache: false,
data: { like_status: status_id, user_id: user_id, _token: token },
success: function(data) {
submitBtn.removeClass('btn-info').addClass('btn-danger');
submitBtn.find($(".fa")).removeClass('fa-thumbs-up').addClass('fa-thumbs-down');
likeText.text('Dislike');
console.log(data);
},
error: function() {
console.log('error');
}
});
// data.count returns the count before the new like has been submitted
$.get("http://localhost/socialnet/public/likestatusCount/" + status_id, function(data) {
likeCounter.text(data.count);
console.log(data.count);
});
});
移动此:
$.get("http://localhost/socialnet/public/likestatusCount/" + status_id, function(data) {
likeCounter.text(data.count);
console.log(data.count);
});
内部
success: function(data){
}
相关文章:
- 如何在corona sdk中从CK编辑器中检索数据
- 使用javascript进行JSON数据检索
- 使用JSON数据检索AJAX外部成功函数
- 将jquery HTML方法中的数据检索到数组中
- PHP/MySQL 时间数据检索和创建倒计时
- 将数据库数据检索到JSON-移动登录表单
- angularjs中的异步数据检索
- 如何将索引数据库表数据检索到变量
- 简单的Firebase数据检索
- 如何在 JQGard 加载时禁用数据检索
- 如何将角度数据检索到其他JS文件中
- 异步数据检索和缓存
- 如何从服务中将数据检索到指令(angularjs)中
- 动态表单字段和数据库数据检索
- PHP post请求数据检索使用Jquery AJAX
- javaScript中的异步数据检索
- Json数据检索jquery
- 在Firebase中使用Ionic异步数据检索的问题
- JQuery事件处理与数据检索通过POST
- Angular将特定数据检索到$scope变量中不起作用