javascript - 如何使用 javascript 和 ajax 获取每条消息的值

标签 javascript jquery ajax

我正在尝试创建一个收藏按钮,单击该按钮将收藏该消息而无需重新加载。一切都编码正确,除了我无法弄清楚如何将每条消息的单独 ID 发送到 ajax 响应。

我的ajax:

   $(document).on('submit', '.favourite-form', function(e) { 
   e.preventDefault();
   var data = $(this).serialize();  
   $.ajax({ 
  data: data, 
  type: "post", 
   url: "favorite.php?message=529", // here i put 529 as an example, 
  i need it to be a variable that changes based on which message has been clicked.
  success: function(data) { 
  alert("Data Save: " + data); 
    },
    error: function(jqXHR, textStatus, errorThrown) //gracefully handle any errors in the UI
    {
   alert("An ajax error occurred: " + textStatus + " : " + errorThrown);
  }
}); 
 }); 

我的 HTML。

   <form class="favourite-form" method="post">
        
        <a class="msg-icon " href="<?php echo "reply?message=" . $row['msgid'] . ""; ?>"></a>
       <button type="submit" name="fav" value="<?php echo $row['msgid'] ?>" ></button>
        </form>

我的 PHP 依赖于通过 $_GET METHOD 发送的消息 ID。

我的PHP:

        $user_id = $_SESSION['active_user_id'];
        
    
            extract($_GET);
            $id=$_GET['message'];
            
            $q=$db->prepare("SELECT msgid,date,text
            
            FROM messages 
            WHERE to_id=? and msgid=?");
            $q->bindValue(1,$user_id);
            $q->bindValue(2,$id);
            $q->execute();
            $row2=$q->fetch();
            $d=$row2['date'];
            
            
            $fav_questionq=$db->prepare("SELECT *
            FROM messages
            LEFT JOIN users
            ON messages.to_id=users.id
            WHERE users.id=? AND messages.msgid=?
            
            ");
            $fav_questionq->bindValue(1,$user_id);
            $fav_questionq->bindValue(2,$id);
            $fav_questionq->execute();
            $frow=$fav_questionq->fetch();
            
            $fquestion= $frow['text'];
        
            
            $result = $db->prepare("SELECT * FROM fav_messages
                                WHERE username=? AND message=?");
            $result->bindValue(1,$user_id); 
            $result->bindValue(2,$id);              
            $result->execute();
                                
                        
        if($result->rowCount()== 1 )
        {
            $deletequery=$db->prepare("DELETE FROM fav_messages WHERE message=?");
            $deletequery->bindValue(1,$id);
            $deletequery->execute();
        
        }
        else
        {
        $insertquery = $db->prepare("INSERT INTO fav_messages (username,message,fav_question,fav_date) values(?,?,?,?)");
        $insertquery->bindValue(1,$user_id);
        $insertquery->bindValue(2,$id);
        $insertquery->bindValue(3,$fquestion);
        $insertquery->bindValue(4,$d);
        $insertquery->execute();
        }
        
        
        
        ?>

如何通过ajax以这种方式发送每个消息ID。

最佳答案

你可以这样做:

$(document).on('submit', '.favourite-form', function(e) {
    e.preventDefault();
    var data = $(this).serialize();
    // Here, you will get the individual id before submiting the form
    var mssg_id = $(this).find('button[name="fav"]').val();
    $.ajax({
        data: data,
        type: "post",
        url: `favorite.php?message=${mssg_id}`, // It will be added to the url ES6 method
        success: function(data) {
            alert("Data Save: " + data);
        },
        error: function(jqXHR, textStatus, errorThrown) 
        {
            alert("An ajax error occurred: " + textStatus + " : " + errorThrown);
        }
    });
});

编辑

url: "favourite.php?message="+mssg_id,

关于javascript - 如何使用 javascript 和 ajax 获取每条消息的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62213263/

相关文章:

JavaScript Json 解析

javascript - CORS + Cordova : issues with : Access-Control-Allow-Origin

javascript - 在需要 Node 模块时强制执行区分大小写的字符串匹配

javascript - JQuery 不在 "refreshed"元素上注册事件

javascript - 粘贴后 IE9 输入 setSelectionRange() 无效

javascript - 如何在我的功能场景 Cucumber.js 中使用标签?

javascript - 包含无填充或间距的 JQM 小部件的 HTML 表

Javascript 'Namespaces' 和 jQuery AJAX

php - ajax请求页面重定向

javascript - XmlHttpRequest 返回值