javascript - 删除并添加到数据库

标签 javascript mysql ajax

所以我需要一个函数,所以当用户单击 X 按钮时,它会删除该按钮,并将其添加到名为 liked 我拥有它的数据库表中,因此当单击 X 按钮时,它会从页面中删除它但不会更新mysql 与任何...

这是我需要的页面脚本.. 你会看到我的

<a href="#" class="close" onclick="removeElement('tbl','<? echo $site->facebook;?         >');">x</a>

我需要它来像这样更新 mysql

mysql_query("INSERT INTO `liked` (user_id, site_id) VALUES('{$x[1]}','{$site->id}')");

我怎样才能做到这一点?在这个页面上..

<?php
include('header.php');
if(!isset($data->login)){echo "<script>document.location.href='index.php'</script>";        exit;}
?>
<body id="tab1"> 
<div>
<ul id="tabnav"> 
<li class="tab1"><a href="facebook.php">Earn Coins</a></li> 
<li class="tab2"><a href="addfb.php">Add Facebook Page</a></li> 
<li class="tab3"><a href="fbpages.php">Your Pages</a></li> 
</ul>
</div>
<h1>Facebook Fan Pages</h1>
 <?
  $site2 = mysql_query("SELECT * FROM `facebook` WHERE (`active` = '0' AND `points` >     '4') AND `id` NOT IN (SELECT `site_id` FROM `liked` WHERE `user_id`='{$data->id}') ORDER BY `cpc` DESC LIMIT 0, 15");
 $ext = mysql_num_rows($site2);
 if($ext > 0){
 ?><div id="fb-root"></div>
 <script>
 window.fbAsyncInit = function() {
 FB.init({status: true, cookie: true, xfbml: true});
 var user= "<? echo $data->id;?>";
 document.getElementById("Hint").style.display='block';
  FB.Event.subscribe('edge.create', function(response) {
 $.ajax({
    type: "POST",
    url: "fbreceive.php",
    data: "data="+response + "---" + user,        
    cache: false
  });
$("#Hint").html('<font size="3"><b>Liked with success!</b></font>');
removeElement('tbl', response);
   });
 };
 (function() {
    var e = document.createElement('script');
 e.type = 'text/javascript';
 e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
 e.async = true;
  document.getElementById('fb-root').appendChild(e);
  }());

 function removeElement(parentDiv, childDiv){
 if (document.getElementById(childDiv)) {     
      var child = document.getElementById(childDiv);
      var parent = document.getElementById(parentDiv);
      parent.removeChild(child);
 }
  }
  function refreshpage()
  {
  window.location.reload();
  }
   </script>
  <center><div id="Hint" style="display:none;"></div></center>
  <div id="tbl">
  <?
 for($j=1; $site = mysql_fetch_object($site2); $j++)
  {
 ?> 
 <div class="tbl tbl-facebook" id="<? echo $site->facebook;?>">
<a href="#" class="close" onclick="removeElement('tbl','<? echo $site->facebook;?     >');">x</a>
<div><fb:like href="<? echo $site->facebook;?>" send="false" layout="button_count"           show_faces="false" font=""></fb:like></div>
<div class="title"><a href="<? echo $site->facebook;?>" target="_blank"   style="color:blue;"><? echo $site->title;?></a></div>
<div class="points">Coins: <b><? echo $site->cpc;?></b></div>
   </div>
    <?}?>
   </div>
    <div class='infobox'>Like the pages and refresh page to see the addition of points!
  <form action='' method='' onsubmit='refreshpage();'>
 <input name='refresh' type='submit' value='Refresh'>
  </form></div>
  <?}else{?>
  <div class="msg_error">Sorry, there are no more coins to be earned at the moment.      Please try again later.</div>
   <div class="msg_success"><a href="buy.php"><b>Feel like you need more coins? You can    purchase them now!</b></a></div><?}?>
 <div class="clearer">&nbsp;</div>

    <? include('footer.php');?>

现在有一个包含文件,就在这里

  <?
  include('config.php');
  if(isset($_POST['data'])){
   $x = explode('---', $_POST['data']);
  $site = mysql_fetch_object(mysql_query("SELECT * FROM `facebook` WHERE     `facebook`='{$x[0]}'"));
  if($site->id != ""){
  mysql_query("UPDATE `users` SET `coins`=`coins`+'{$site->cpc}' WHERE `id`='{$x[1]}'");
  mysql_query("UPDATE `facebook` SET `likes`=`likes`+'1', `points`=`points`-'{$site-    >cpc}' WHERE `facebook`='{$x[0]}'");
  mysql_query("INSERT INTO `liked` (user_id, site_id) VALUES('{$x[1]}','{$site->id}')");
  }}
  ?>

最佳答案

您可以使用 ajax 在幕后发出请求。

引用: http://www.w3schools.com/ajax/default.asp

使用 javascript DOM 编辑您的按钮。

引用: http://www.w3schools.com/jsref/dom_obj_element.asp


<div id="content"></div>
<script>
    function AjaxReq(){
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp1=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp1.onreadystatechange=function()
      {
      if (xmlhttp1.readyState==4 && xmlhttp1.status==200)
        {
        document.getElementById("content").innerHTML=xmlhttp1.responseText;
        }
      };
      xmlhttp1.open("GET","yourpage.php",true);
      xmlhttp1.send();  
    };
</script>

关于javascript - 删除并添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695728/

相关文章:

javascript - 如何使用 casperJS、phantomJS 运行 js 文件而不在 cmd 中给出完整的文件路径?

javascript - 使用 javascript 和 ajax 将多个对象发送到 php

php - 无鉴别器映射的 Doctrine 单表继承

php - 在一页或所有页面上写 session 开始?

javascript - 无法使用 Froala 编辑器将图像上传到本地服务器

javascript - ReactJS遇到 "Target container is not a DOM element",尝试了很多解决方案但没有成功

javascript - 在循环中创建 Promise 并在某些已解决的条件发生时打破循环

mysql - Rails & MySQL - 如何在 rails 中的 find_by_sql 中使用 LIKE 运算符和 %?

php - 如何计算观看次数?

javascript - 将属性传递给方法 jQuery 和 Rails