在没有页面重新加载的情况下更新Href按钮

时间:2014-02-06 15:30:21

标签: ajax

我在使用ajax时遇到了麻烦。你能救我吗?

我有一个href按钮,标记为订阅,如果$ sub为0,如果$ sub不是,则取消订阅。顺便说一下,$ sub是查询的结果。 当我点击它订阅时,$ sub变为1(在数据库中插入一行),标签更改为Unsubscribed。在没有重新加载页面的情况下,我再次单击该按钮(现在标记为Unsubscribed),而不是使$ sub 0(删除插入的行),而是在数据库中插入另一行。

这是$ sub的数据库查询,它与href按钮在同一页面中

    $buddy_request = mysqli_query($connection,"SELECT count(subscription_id) FROM SUBSCRIPTION    
    WHERE subscriber = '$viewer' and subscribed = '$viewed'");
    while($row = mysqli_fetch_array($buddy_request))
    {

     $sub = $row['count(subscription_id)'];  
    }

这是按钮

    <a href='' id='subscribe'  data-sub = '<?php echo $sub; ?>' ><?php if($sub == 0){echo "Subscribe";} else {echo "Unsubscribe";}?></a>

这是我的ajax

    $("#subscribe").click(function(e) 
        {   
            e.preventDefault();
            var sub = $(this).data('sub');
            //to subscribe
            if(sub == 0)
            {
                $.ajax({
                url: 'subscribe.php',
                type: 'GET',
                dataType: 'json',
                context: this,
                success: function(result)
                        {                                           

                            if (result == true)
                            $(this).html('Unsubscribe');    
                        } 
                });
            }
            //to unsubscribe
            else
            {
                $.ajax({
                url: 'unsubscribe.php',
                type: 'GET',
                dataType: 'json',
                context: this,
                success: function(result)
                        {                                           
                            if (result == true)
                            $(this).html('Subscribe');  
                        } 
                });
            }

        })

这是subscribe.php

   $result = false;
   $sql="INSERT INTO SUBSCRIPTION (subscriber,subscribed)
          VALUES($viewer,$viewed)";
    if (!mysqli_query($connection,$sql))
    {
        die('Error: ' . mysqli_error($connection));
    }
    $result = true; 
   echo json_encode($result);

我尝试在每个成功的ajax中使用location.reload()并且它工作正常但我发现在单击按钮后每次查看页面重新加载都没有好处。提前谢谢!

1 个答案:

答案 0 :(得分:0)

更新成功函数中的数据子值

if if branch

$(this).data('sub', 1);

for else branch

$(this).data('sub', 0);