Javascript 在弹出窗口中,通过ajax:php-mysql可以看到两次数据获取

Javascript 在弹出窗口中,通过ajax:php-mysql可以看到两次数据获取,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,在过去的两个小时里,我一直在挣扎 尝试: location.reload(); reset form 许多功能,但在我关闭弹出窗口后,当重新打开或打开其他id时。我以前的id数据仍然在那里显示,并且对所有id都是连续的 风格: Jquery/ajax: 下面是我的弹出框+ajax,用于获取和显示输入字段下的记录 $('#class').on('click delegate mouseenter', 'a', function (e) { var data = dt

在过去的两个小时里,我一直在挣扎

尝试:

location.reload();
reset form 
许多功能,但在我关闭弹出窗口后,当重新打开或打开其他id时。我以前的id数据仍然在那里显示,并且对所有id都是连续的

风格:

Jquery/ajax:

下面是我的弹出框+ajax,用于获取和显示输入字段下的记录

 $('#class').on('click delegate mouseenter', 'a', function (e) {

            var data = dt.row( $(this).parents('tr') ).data();
            var valuea = data[1];


             $(function(){
                e.preventDefault();   
                var table = $('#class').DataTable();
                var overlay = $('<div id="overlay"></div>');
                    $('.close').click(function(){
                    $('.popup').hide();
                    overlay.appendTo(document.body).remove();
                    location.reload();
                    resetForms();
                    $("span.ajax_loader").hide(); // success
                    var pathlaser = "server_processing_laser.php";
                    tablel.clear();
                    tablel.draw();
                    tablel.ajax.url(pathlaser).load();
                    return false;
                });

                $('.xclose').click(function(){
                    $('.popup').hide();
                    overlay.appendTo(document.body).remove();
                    location.reload();
                    resetForms();
                    $("span.ajax_loader").hide(); // success
                    var pathlaser = "server_processing_laser.php";
                    tablel.clear();
                    tablel.draw();
                    tablel.ajax.url(pathlaser).load();
                    return false;
                });

             // POPUP BOX

                $('.click_'+data[0]+'').click(function(e){e.preventDefault();       
                    overlay.show();
                    overlay.appendTo(document.body);
                    $('.popup').show();
                $("div.note_msg").hide();
                    $('.popup .id').val(valuea); 

               // FETCHING DATA TO SHOW

                    $.ajax({
                       type:"GET",
                       url:"fetchrecord.php",
                       data:{
                           valuea:valuea,

                        },
                         async: false,
                       success:function(html){ 
                         $("#display").after(html);
                         }     
                    });

                    return false;
                });

            });
    }); 

});
下面是弹出代码:

fetchrecord.php

一切正常。。我的意思是我正在获取数据

但当我关闭并打开任何其他ID时,弹出窗口会在tr/td数据上方显示我两次。 指最新数据和我关闭的旧数据。 我尝试重新加载页面以便获得新数据,但有时它会显示正确的数据,有时会显示旧数据的倍数

我想这和DIV的缓存有关,它在关闭弹出窗口后仍然作为它的缓存

弹出链接:

有什么想法请帮忙试试

header('Pragma: no-cache', true);
header("Cache-Control: no-store, no-cache, must-revalidate", true);

在fetchrecord.php中,我承认,我没有正确地阅读,但请尝试$'feedback\u form'.triggerreset;完成表单后。

我得到了答案:

更改如下:

致:

它现在起作用了,现在没有重复发生


谢谢

嘿,正如我建议的那样,我尝试在tr之前将上面的内容放在fetchrecord.php下,但在关闭并再次打开后,在Display下弹出如此多的旧数据+新数据嘿,感谢您的响应,我已经尝试过了,但结果是一样的:在close触发器中将div内容设置为如何?对不起,我无法理解您。。请详细告诉我,试试$'.popup.id'.val好吗
<div class='popup'>
<div class='content'>
<a href='' class="xclose"><img src='../datatables/media/images/close.png' alt='quit' class='x' id='x' /> </a>
<p> 
         <form method="post" action="" id="feedback_form">

        <div class="langtrx_fr" align="center">
                <table align="center"> 
                 <div id="display"></div>

               </table>

        </div> 
    </form>


<span class="ajax_loader"></span>

<table align="center"><tr><td> <a href='' class='close'><strong>Close</strong></a> </td></tr> </table>

</p>
</div>
</div>
$valuepktid = $_REQUEST['valuea'];

$sql = "SELECT stoneone,stonetwo,stone3,loss FROM stone
      WHERE pid = ".db_escape($valuepktid)." 
      GROUP BY id";
$resultpkt = mysqli_query($db,$sql);
$abpkt = mysqli_fetch_array($resultpkt); 

?>

<?php


?>


<tr> 
<td class="label">Stone 1 :</td>
<td  class="form">
<input name="stoneone" id="stoneone" readonly value="<?php echo $abpkt['stoneone'];?>" class="stoneone" autocomplete="off"  type="number"/>
</td>
</tr>

<tr>
<td class="label">Stone 2 :</td>
<td class="form"><input name="stonetwo" readonly value="<?php echo $abpkt['stonetwo'];?>" class="stonetwo" autocomplete="off"  type="number" /></td>
</tr>

<tr>
<td class="label">Loss :</td>
<td class="form"><input name="loss" readonly  value="<?php echo $abpkt['loss'];?>" class="loss" value="" autocomplete="off"  type="number" /></td>
</tr>
header('Pragma: no-cache', true);
header("Cache-Control: no-store, no-cache, must-revalidate", true);
success:function(html) { 

$("#display").after(html);

} 
success:function(data) { 

$("#display").html(data);

}