我的Ajax代码无法刷新我最喜欢的按钮

时间:2019-01-04 23:37:08

标签: php ajax

我尝试使用不同的代码来创建“收藏夹”按钮,当您单击该按钮时,该按钮会更改(图像)-“收藏夹” /“收藏夹”没有刷新页面,但无法正常工作。使用此代码,当我单击“收藏夹”按钮时,页面不会重新加载,但没有任何变化,图像(空的心)没有变化,并且数据库中也没有记录...

 // ************************* AJAX 


 <script type="text/javascript" src="https://ajax.googleapis.com.   /ajax/libs/jquery/1.9.0/jquery.min.js"></script>
 <script type="text/javascript">
 $(function(){
    $("#refreshAjout").click(function(){
   $.ajax({
       type: "POST",
       url: $("#refreshAjout").attr('action'),
       success: function(retour){

       }
        });
            return false;
    });
  });

  $(function(){
    $("#refreshSupp").click(function(){
   $.ajax({
       type: "POST",
       url: $("#refreshSupp").attr('action'),
       success: function(retour){

       }
        });
            return false;
    });
   });
 </script>

这是按钮的PHP代码以及从数据库添加或删除数据的功能

 <?php

 // If user not connected
 if ($_SESSION['pseudo'] == NULL){ 


 echo '<a href="../../index-auth-creer-compte.php"><img src="../..   /images/empty-heart.jpg" class="ajouter"</img> </a>';

  }

 // If user connected
 if (isset($_SESSION['pseudo']) && isset($_SESSION['pass'])){

 // We check if the key exist in DB
 $req="SELECT count(*) FROM favoris WHERE profil='".$test."'"; 
 $res=mysql_query($req);

 // if key not in DB we show empty heart button
 if(mysql_result($res,0)==0 ) { 
 ?>

 <form method="post" action="">
 <button type="image" id="refreshAjout" class="ajouter" value=""   name="refreshAjout"></button> 
 </form> 

 <?php   
 // if key in DB we show pink heart   
 } else{ ?>

 <form method="post" action="">
 <button type="image" id="refreshSupp" class="supprimer" value=""    name="refreshSupp"></button> 
 </form> 

 <?php
    }
   }

最后确定将信息放入或删除数据库的功能

if (isset($_POST['refreshAjout']) ) {

$sql = "INSERT INTO favoris (id, client, profil, photo, prenom,   reference, age, lien) VALUES('','$pseudo' ,'$pseudo$referenceBase','$photoBase','$prenomBase', '$referenceBase', '$ageBase','$lienBase')";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
}

if (isset($_POST['refreshSupp'])  ) {

$sql = "DELETE FROM favoris  WHERE profil ='$pseudo$referenceBase'";
mysql_query($sql) or die('Erreur SQL ! '.$sql.'<br>'.mysql_error());
}
?>

1 个答案:

答案 0 :(得分:1)

您没有在$.ajax调用中发送任何参数,因此$_POST将为空。您需要使用data:选项发送参数。

您可以将两个提交按钮组合在一个调用中,因为可以从元素本身获取参数。

$(function() {
  $("#refreshAjout, #refreshSupp").click(function() {
    var newSrc = this.id == "refreshAjout" ? "../../images/pink-heart.jpg" : "../../images/empty-heart.jpg";
    $.ajax({
      type: "POST",
      url: $(this).attr('action'),
      data: { [this.id]: this.value },
      success: function(retour) {
        $(".ajouter").attr("src", newSrc);
      }
    });
    return false;
  });
});