Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript和ajax获取每个单独消息的值_Javascript_Jquery_Ajax - Fatal编程技术网

如何使用javascript和ajax获取每个单独消息的值

如何使用javascript和ajax获取每个单独消息的值,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试创建一个收藏夹按钮,当单击该按钮时,将在不重新加载的情况下收藏邮件。所有代码都是正确的,只是我很难确定如何将每条消息的单个ID发送到ajax响应 我的ajax: $(document).on('submit', '.favourite-form', function(e) { e.preventDefault(); var data = $(this).serialize(); $.ajax({ data: data, type: "

我正在尝试创建一个收藏夹按钮,当单击该按钮时,将在不重新加载的情况下收藏邮件。所有代码都是正确的,只是我很难确定如何将每条消息的单个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>
如何通过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);
        }
    });
});
编辑 你可以做:

$(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);
        }
    });
});
编辑
我要做的只是以视图的形式添加一个隐藏的输入,请尝试以下操作:

<input type="hidden" name="msgid" value="<?php echo $row['msgid' ?>" />

我要做的只是以视图的形式添加一个隐藏的输入,请尝试以下操作:

<input type="hidden" name="msgid" value="<?php echo $row['msgid' ?>" />

这与答案非常接近,但您编写url的方式会导致错误,传递的值是{mssg_id},而且它仍然找不到按钮的值。我已编辑。Plz检查我尝试过,但仍然得到未定义的值。你的方法似乎是正确的,但它仍然没有得到按钮的值@现在可以工作了,非常感谢你,你帮我解决了这个问题!!!我改变了,但没有改变,它工作了,现在只发生了一个问题,对于我的消息的第一个实例,该值未定义,但是对于其他消息,所有都工作正常。查找我的附加图像这与答案非常接近,但是您编写url的方式导致了错误,传递的值是{mssg_id},而且它仍然没有找到按钮的值。我已编辑。Plz检查我尝试过,但仍然得到未定义的值。你的方法似乎是正确的,但它仍然没有得到按钮的值@现在可以工作了,非常感谢你,你帮我解决了这个问题!!!我改变了,但没有改变,它工作了,现在只发生了一个问题,对于我的消息的第一个实例,该值未定义,但是对于其他消息,所有都工作正常。找到我的附加图像