如何在php函数后自动刷新页面上保持我的位置

时间:2015-01-21 10:04:36

标签: javascript jquery html ajax

我知道这只适用于AJAX,但我从未使用过AJAX ...在我的网站上你可以保存一张你从游戏Magic获得的牌的清单,这是相当的清单。您必须按一个按钮才能添加一张卡片,每张卡片都有此按钮,当您添加它时,它会将卡片添加到您的列表中然后刷新并再次位于页面顶部。我怎样才能保持它的地位呢?因此,使用它的人可以轻松地将卡添加到他们的收藏中。

我转发这个因为我没有得到任何有效的答案,我还是要感谢那些试图帮助我的人!

在红色方块内,您可以按添加或删除:http://prntscr.com/5uq6ak

添加卡的功能:

//Add card to collection
function addCardToCollection($conn, $userID, $cardID){
//Checks if the cards is already added for this user
    $queryGetCard = 'SELECT user_id, card_id FROM collection WHERE user_id = '.$userID.' AND card_id = '.$cardID;
    $checkCollection = $conn->query($queryGetCard);
    if($checkCollection->fetch_assoc() > 0){return 'Deze kaart hebt u al.';}

//Adds card to the database
    $queryAddCard = 'INSERT INTO collection (user_id, card_id) VALUES ('.$userID.','.$cardID.')';
    if($conn->query($queryAddCard)){return 'Kaart toegevoed.';}
    else{return 'Kaart niet toegevoed.';}
}

按钮和卡片:

<div class="col-md-10">
    <div class="row">
        <div class="col-sm-8">
            <b>Naam:</b> <a href="'.$baseURL.'card.php?multiverseid='.$value['multiverseid'].'&setName='.$result[0]['name'].'">'.$value['name'].'</a>
            <br><b>Beschrijving:</b> '.$value['text'].'
            <br><b>Flavor:</b> '.$value['flavor'].'
            <br><b>Artist:</b> '.$value['artist'].'
            <br>';
            if(login_check($mysqli) == true) {
                $cardsHTML.='<br><b>Deze kaart heb ik...
                <a href="' . $baseURL . 'set.php?id=' . $_GET['id'] . '&cardID=' . $value['id'] . '&collection=add">
                    <div class="glyphicon glyphicon-ok green"></div>
                </a> |
                <a href="' . $baseURL . 'set.php?id=' . $_GET['id'] . '&cardID=' . $value['id'] . '&collection=remove">
                    <div class="glyphicon glyphicon-remove red"></div>
                </a>
                </b>';
            }
         $cardsHTML.='</div>
        <div class="col-sm-4">
            <b>Type:</b> '.$value['type'].'
            <br><b>Mana kosten:</b> '.$value['manaCost'].'
            <br><b>CMC:</b> '.$value['cmc'].'
            <br><b>Power:</b> '.$value['power'].'
            <br><b>Toughness:</b> '.$value['toughness'].'
            <br><b>Zeldzaamheid:</b> '.$value['rarity'].'
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

这是一个广泛的问题。如果您想采用AJAX方法,我可以为您概述步骤,但您必须自己研究它们:

  1. 修改您要调用的PHP脚本以添加元素以返回JSON格式(请参阅http://php.net/manual/en/function.json-encode.php
  2. 按下添加按钮,为之前修改过的PHP脚本创建一个AJAX请求(请参阅http://api.jquery.com/jquery.ajax/,忽略长文本,首先查看页面下方的简单示例)
  3. 使用您需要在页面中插入的HTML代码在JavaScript中创建一个String变量
  4. 从PHP获取JSON响应并将其添加到先前创建的变量
  5. 使用jQuery append()函数在页面中添加HTML代码(请参阅http://api.jquery.com/append/
  6. 如果您想要更简单的方法,则必须定义一些不可见的锚点(<a name="card3"></a>),然后重定向到以#anchor-name结尾的URL,例如http://yourdomain.com/yourpage.php#card3