将信息输入数据库时出错,返回最后加载的值

问题描述 投票:0回答:1

我正在开发一个项目,其中包含用户之间具有实时更新的讨论论坛。

每条消息都有一个“积极”和“消极”按钮。单击按钮时,我想存储消息的

id

相反,我的代码当前返回之前保存的最后一条消息的

id

`var myVar = setInterval(LoadData, 2000);

http_request = new XMLHttpRequest();

function LoadData(){
$.ajax({
 url: 'view.php',
 type: "POST",
 dataType: 'json',
 success: function(data) {
  $('#MyTable div').empty();
  for (var i=0; i<data.length; i++) {
    var commentId = data[i].iddisc;
    if(data[i].parent_comment == 0){

      var date = new Date(data[i].datePubli);
      var hourCycle = date.toLocaleString('es-ES', {hourCycle: 'h23' });

     //In the next line is the development of the positive button

     var row = $('<div class="info-box"><img src="./css/escudos/' + data[i].equipo + '.png" width="25px" height="25px" /><p>' + data[i].username + '</p><p id="date-p"> '+ hourCycle +'</p></div><div class="text-box"><p>' + data[i].post + '</p><div class="posneg"><form name="formpositivo" method="post"><input type="hidden" class="form-posi" name="posCommentid" value="' + commentId + '"><input type="button" id="positivo" name="positivo" class="suma" value="+"></form></div></div>');
    $('#record').append(row);
   }
 }
},
 error: function(jqXHR, textStatus, errorThrown){
 alert('Error: ' + textStatus + ' - ' + errorThrown);
}

}); }`

`//Paso data
$(document).ready(function() {
$(document).on('click', '#positivo', function() {
    var posi = document.forms["formpositivo"]["posCommentid"].value;
        $.ajax({
            url: "positivo.php",
            type: "POST",
            data: {
              posi: posi,
            },
            cache: false,
            success: function(dataResult){
                var dataResult = JSON.parse(dataResult);
                if(dataResult.statusCode==300){
                    alert(posi);
                }
            }
        });
});

});`

文档视图

`include './database.php';
$data = array();
$sql = "SELECT *, discussion.id as iddisc, users.id as usersid FROM discussion INNER JOIN users ON discussion.id_user=users.id ORDER BY discussion.id desc";
$result = $conn->query($sql);
while($row = $result->fetch()){
    array_push($data, $row);
    array_push($data);
}

echo json_encode($data);
$conn = null;
exit();`

如何更改此代码,以便当我单击相应的按钮时,返回所选消息的

id
的值?

javascript html button
1个回答
0
投票

正如我在评论中提到的,出现问题是因为您对 HTML 页面内的多个元素使用相同的 id,这是不推荐的。要解决此问题,您可以将 id

positivo
转换为类,或者可以为可以附加事件处理程序的输入元素提供任何类。

所以你的循环代码就变成了。

var row = $('<div class="info-box"><img src="./css/escudos/' + data[i].equipo + '.png" width="25px" height="25px" /><p>' + data[i].username + '</p><p id="date-p"> ' + hourCycle + '</p></div><div class="text-box"><p>' + data[i].post + '</p><div class="posneg"><form name="formpositivo" method="post"><input type="hidden" class="form-posi" name="posCommentid" value="' + commentId + '"><input type="button" class="positivo" name="positivo" class="suma" value="+"></form></div></div>');
$('#record').append(row);

请注意,我已将 id

positivo
更改为 class
positivo

现在您可以附加事件处理程序,如下所示

$(document).ready(function() {
$(document).on('click', '.positivo', function() {
    var posi = $(this).parent().find('[name="posCommentid"]').val();
        $.ajax({
            url: "positivo.php",
            type: "POST",
            data: {
              posi: posi,
            },
            cache: false,
            success: function(dataResult){
                var dataResult = JSON.parse(dataResult);
                if(dataResult.statusCode==300){
                    alert(posi);
                }
            }
        });
});
});
© www.soinside.com 2019 - 2024. All rights reserved.