我有一个主页面,我有一个打开弹出窗口的按钮。关闭此弹出窗口时,我有一个脚本调用php文件从数据库中选择数据。此选定数据将附加到主页面中的div:
if (win.closed !== false) {
window.clearInterval(pollTimer);
$.get("<?php echo $GLOBALFILESPHPFORJS ?>DBtoOCI.php", { ReferenceKey: Reference } )
.done(function( data ) {
console.log( data );
$("#ItemData").append(data);
});
第一次很好地选择和追加数据。例如,如果我有一个名为animalname
的列,其中有一行包含数据“Cat”,那么在我的div中,我会看到cat。如果我然后删除我的数据库的行uit并添加一行名为“Tiger”的行,然后再次打开并关闭弹出窗口,然后将新数据添加到div中,使其变为:“Cat Tiger”,但它是变成“猫猫”!为什么会这样?
从数据库中选择数据:
$sqlReturnExistingOCI = "SELECT * FROM animal WHERE animalname= ?";
if($stmt = $conn->prepare($sqlReturnExistingOCI))
{
mysqli_stmt_bind_param($stmt, "s", $referencekey);
if(!$stmt->execute())
{
echo $stmt->error;
}
else
{
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_array($result)) {
echo $row['animalname'];
}
$stmt->free_result();
$stmt->close;
}
}
答案 0 :(得分:1)
您必须首先清除div,然后为其附加数据$("#ItemData").html('');
if (win.closed !== false) {
window.clearInterval(pollTimer);
$.get("<?php echo $GLOBALFILESPHPFORJS ?>DBtoOCI.php", { uniqueReferenceKey: Reference } )
.done(function( data ) {
console.log( data );
$("#ItemData").html('');
$("#ItemData").append(data);
});
答案 1 :(得分:0)
我通过使用另一个参考编号保存从数据库中的弹出窗口获取的每个新数据来解决此问题。
因此,在我打开弹出窗口之前,我生成一个唯一的数字,将其添加到弹出窗口的url中,然后在将数据保存到数据库时,我使用此数字来保存数据。然后,如果我重新打开另一个弹出窗口,它会有一个新的唯一引用号。在此之前,我创建了1个唯一编号,并使用此编号将数据保存在数据库中,并使用此编号从数据库中删除相同的行。因此,如果我打开弹出窗口并关闭它,那么它使用这个唯一编号保存数据,并使用相同的编号删除此数据但是如果我重新打开弹出窗口并再次关闭,那么我在数据库中再次看到旧数据,这我想是应该缓存的。