我有一个视频网站,在源代码中我有一个名为ajax_switch.post_status的javascript变量,它有2个值,on或off。
此外,我还有一个带有2个选项的滑动按钮。此按钮打开或关闭发布到Facebook。因此,当我在10秒后发布到Facebook时播放视频。该按钮是一个jquery,所以当我按下或关闭在数据库中进行更新。如何在源代码中实时更改ajax_switch.post_status的变量,以便用户访问视频页面并停用facebook帖子而不刷新点击播放而不发布?
我在wordpress中使用它。我的职责是:
在单个php中显示按钮代码
<div class="left" id="1"></div>
<div id="ajax" style="padding-left: 10px; line-height: 13px; height: 27px; vertical-align:middle; display: table-cell;" >
Permiteți Video Best să distribuie acest video pe Facebook cu acordul dvs. Debifând această casetă va opri distribuirea și va șterge postarea de pe cronologia dvs.
</div>
<div class="clear"></div>
<script type="text/javascript">
$('#1').iphoneSwitch(ajax_switch.post_status, function()
{
$.post(ajax_switch.templateUrl+'on.php', function(data)
{
$('#ajax').html(data);
ajax_switch.post_status = 'on';
});
},
function()
{
$.post(ajax_switch.templateUrl+'off.php', function(data)
{
$('#ajax').html(data);
ajax_switch.post_status = 'off';
});
},
{
switch_on_container_path: ajax_switch.templateUrl+'iphone_switch_container_off.png'
});
</script>
发布的条件:
if(ajax_switch.post_status == 'on')
{
FB.api(
'/me/video.watches',
'post',
{
'movie': '<?php the_permalink() ?>?ex=257957417674441',
'access_token': '<?php echo $token; ?>'
},
function(response)
{
if (!response || response.error)
{
console.log(response.error);
}
else
{
console.log('Ewww!');
}
});
}
答案 0 :(得分:0)
我不明白“iphoneSwitch”的方法是做什么的。我希望有类似的东西:
$("#1").click(function(){
var targetString = ajax_switch.post_status;
$.post(ajax_switch.templateUrl + targetString + '.php', function(data) {
$('#ajax').html(data);
ajax_switch.post_status = ajax_switch.post_status == 'off' ? "on" : "off";
});
});
让我知道问题是否还有更多。
答案 1 :(得分:0)
当您编写代码时,您必须等待ajax请求响应才能更新ajax_switch.post_status
。
将代码移到ajax回调之外将允许它立即采取行动而不会延迟数据库。
要注意的是,您可能希望在回调中保留一些代码,以便将数据库的正确状态维护到前端客户端。您可以假设更新成功,但您可能希望在回调中进行检查,以防它失败。这样,您的客户端永远不会与您的数据库不同步。