【发布时间】:2013-12-08 10:24:13
【问题描述】:
我有两个控制器分别用于关注和取消关注。我想设计一个按钮,该按钮将在网站的许多地方使用,具有跟随 - 取消关注 - 跟随动作。
我的意思是当用户关注时,它将被声明为关注,直到悬停效果调用,否则它会说关注,当悬停时,如果已经关注或继续关注选项,则会取消关注。
这就是按钮外观的细节。现在,当我开始实施时,我可以在完成检查的地方进行单个控制器调用(通过从互联网获得一些帮助)。但我想为两个不同的动作调用两个不同的控制器。
like for follow-> {{ action('FollowsController@show', 'id'); }}
取消关注
{{ action('FollowsController@destroy', 'id'); }}
这里显示的是 post 方法,destroy 有删除操作。
在这里,我在代码中提供了完整的操作:尽管这段代码并没有给出我想要的东西。
<script type="text/javascript">
//Changes the Following text to Unfollow when mouseover the button
$(document).ready(function()
{
$('.following').hover(function()
{
$(this).text("Unfollow");
},function()
{
$(this).text("Following");
});
});
//Perform the Following and Unfollowing work
function follow_or_unfollow(id,action)
{
var dataString = "id=" + id;
$.ajax({
type: "POST",
url: "{{ action('FollowsController@show', 'id'); }}",
data: dataString,
beforeSend: function()
{
if ( action == "following" )
{
$("#following"+id).hide();
$("#loading"+id).html('<img src="loading.gif" align="absmiddle" alt="Loading...">');
}
else if ( action == "follow" )
{
$("#follow"+id).hide();
$("#loading"+id).html('<img src="loading.gif" align="absmiddle" alt="Loading...">');
}
else { }
},
success: function(response)
{
if ( action == "following" ){
$("#loading"+id).html('');
$("#follow"+id).show();
}
else if ( action == "follow" ){
$("#loading"+id).html('');
$("#following"+id).show();
}
else { }
}
});
}
</script>
@if(0)
<span id="loading {{ $topdebater->id }}"></span>
<button class="btn btn-lg btn-danger button following" id="following {{ $topdebater->id }}" onClick="follow_or_unfollow({{ $topdebater->id }},'following');">Following</button>
<span style="display:none;" class="btn btn-lg button follow" id="follow {{ $topdebater->id }} ?>" onClick="follow_or_unfollow({{ $topdebater->id }},'follow');">Follow</span>
@else
<span id="loading{{ $topdebater->id }}"></span>
<button class="btn btn-info button follow" id="follow{{ $topdebater->id }}" onClick="follow_or_unfollow({{ $topdebater->id }},'follow');">Follow</button>
<span style="display:none;" class="button following" id="followingfollow{{ $topdebater->id }}" onClick="follow_or_unfollow(follow{{ $topdebater->id }},'following');">Following</span>
@endif
我是 ajax 的新手。虽然努力学习。我需要你支持这项研究。提前致谢。
【问题讨论】:
-
关注和取消关注时使用相同的操作 URL。控制器的 show-function 是否负责区分这两个动作?
-
先生,此代码仅适用于我检查用户是否在关注的单个控制器并相应地采取措施。但在新情况下,我希望它从 ajax 决策中调用两个不同的控制器。请帮帮我,先生。
标签: ajax jquery laravel laravel-4