2015-01-21 38 views
-1

我知道,这是唯一可能与AJAX,但我从来没有与AJAX工作...在我的网站上,你可以保留一张卡片列表你从魔术这个游戏中获得了,这是相当的名单。你必须按下一个按钮来添加一张卡片,每张卡片都有这个按钮,当你添加它时,它会将卡片添加到你的列表中,然后刷新并再次在页面的顶部。我怎么能让它保持它的位置?因此,使用此功能的人可以轻松地为他们的收藏添加卡片。我怎么能保持我的位置在自动刷新PHP功能后

我重新发布这个,因为我没有得到任何工作答案,我仍然想要感谢那些试图帮助我的人!

里面的红色方块,您可以按添加或删除: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> 

+0

您可以使用哈希标记。 – putvande 2015-01-21 10:09:24

+0

putvande,正如我所说这确实是重复的。你可以在问题中看到为什么...和#在这个大列表中不起作用 – Anona 2015-01-21 10:12:25

+0

为什么不在这么长的列表中工作?除了使用AJAX,我没有其他选择。重复通常是不允许的。 – putvande 2015-01-21 10:20:24

回答

1

这是一个广泛的问题。如果你想要去的AJAX方法,我可以勾勒出你的步骤,但你必须自己研究他们:

  1. 修改PHP脚本你打电话添加到返回JSON元素格式(见http://php.net/manual/en/function.json-encode.php
  2. 在按下Add按钮,创建一个AJAX请求到先前修改PHP脚本(见http://api.jquery.com/jquery.ajax/,忽略长文本,开始寻找在页面下部的简单的例子)
  3. 创建一个字符串JavaScript中带有您需要在页面中插入的HTML代码的变量
  4. 从PHP获取JSON响应并添加到先前创建的变量
  5. 添加一个HTML代码与jQuery的页面追加()函数(见http://api.jquery.com/append/

如果你想更简单的方法,你必须定义一些看不见的锚(<a name="card3"></a>)然后重定向到以#anchor-name结尾的URL,例如http://yourdomain.com/yourpage.php#card3