0

我有一个视频网站,在源代码中我有一个名为 ajax_switch.post_status 的 javascript 变量,它有 2 个值,开或关。

我还有一个滑动按钮,有 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!');
            }
        });
        }
4

2 回答 2

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";
  });
});

让我知道这个问题是否还有其他问题。

于 2013-04-15T19:33:57.120 回答
0

由于您当前编写了代码,因此您必须等待您的 ajax 请求响应,然后再进行更新ajax_switch.post_status

将代码移到 ajax 回调之外将允许它立即采取行动,而不会延迟您的数据库。

不过要记住的是,您可能希望在回调中保留一些代码,以保持数据库对前端客户端的正确状态。您可以假设更新成功,但您可能希望在回调内部进行检查,以防万一失败。这样,您的客户端永远不会与您的数据库不同步。

于 2013-04-15T19:34:10.177 回答