Javascript 更新或插入数据后关闭弹出窗口

Javascript 更新或插入数据后关闭弹出窗口,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我有一个窗体,它作为弹出窗口打开,用于插入或更新数据。有一个按钮更新数据库中的数据,但不关闭弹出窗口。更新/插入后,它保持打开状态 我尝试了以下代码,但未能实现 <?php if(isset($_POST['modify'])) { $aba11=$_POST['aba11']; $aba12=$_POST['aba12']; $aba13=$_POST['aba13']; $aba21=$_POST['aba21']; $aba22=$_POST['aba22']; $aba23=$_P

我有一个窗体,它作为弹出窗口打开,用于插入或更新数据。有一个按钮更新数据库中的数据,但不关闭弹出窗口。更新/插入后,它保持打开状态

我尝试了以下代码,但未能实现

<?php
if(isset($_POST['modify']))
{
$aba11=$_POST['aba11'];
$aba12=$_POST['aba12'];
$aba13=$_POST['aba13'];
$aba21=$_POST['aba21'];
$aba22=$_POST['aba22'];
$aba23=$_POST['aba23'];
$aba31=$_POST['aba31'];
$aba32=$_POST['aba32'];
$aba33=$_POST['aba33'];
$aba41=$_POST['aba41'];
$aba42=$_POST['aba42'];
$aba43=$_POST['aba43'];
$sampleid=$_GET['sampleid'];
$sql="UPDATE tblaba SET aba11=:aba11,aba12=:aba12,aba13=:aba13,aba21=:aba21,aba22=:aba22,aba23=:aba23,aba31=:aba31,aba32=:aba32,aba33=:aba33,aba41=:aba41,aba42=:aba42,aba43=:aba43 where sampleid=:sampleid";
$query = $dbh->prepare($sql);
$query->bindParam(':sampleid',$sampleid,PDO::PARAM_STR);
$query->bindParam(':aba11',$aba11,PDO::PARAM_STR);
$query->bindParam(':aba12',$aba12,PDO::PARAM_STR);
$query->bindParam(':aba13',$aba13,PDO::PARAM_STR);
$query->bindParam(':aba21',$aba21,PDO::PARAM_STR);
$query->bindParam(':aba22',$aba22,PDO::PARAM_STR);
$query->bindParam(':aba23',$aba23,PDO::PARAM_STR);
$query->bindParam(':aba31',$aba31,PDO::PARAM_STR);
$query->bindParam(':aba32',$aba32,PDO::PARAM_STR);
$query->bindParam(':aba33',$aba33,PDO::PARAM_STR);
$query->bindParam(':aba41',$aba41,PDO::PARAM_STR);
$query->bindParam(':aba42',$aba42,PDO::PARAM_STR);
$query->bindParam(':aba43',$aba43,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
{
$_SESSION['msg']="Sample Updated successfully";
self.close ();
}

IF (@@ROWCOUNT == 0)
$sql="INSERT INTO  tblaba(sampleid,aba11,aba12,aba13,aba21,aba22,aba23,aba31,aba32,aba33,aba41,aba42,aba43)VALUES(:sampleid,:aba11,:aba12,:aba13,:aba21,:aba22,:aba23,:aba31,:aba32,:aba33,:aba41,:aba42,:aba43)";
$query = $dbh->prepare($sql);
$query->bindParam(':sampleid',$sampleid,PDO::PARAM_STR);
$query->bindParam(':aba11',$aba11,PDO::PARAM_STR);
$query->bindParam(':aba12',$aba12,PDO::PARAM_STR);
$query->bindParam(':aba13',$aba13,PDO::PARAM_STR);
$query->bindParam(':aba21',$aba21,PDO::PARAM_STR);
$query->bindParam(':aba22',$aba22,PDO::PARAM_STR);
$query->bindParam(':aba23',$aba23,PDO::PARAM_STR);
$query->bindParam(':aba31',$aba31,PDO::PARAM_STR);
$query->bindParam(':aba32',$aba32,PDO::PARAM_STR);
$query->bindParam(':aba33',$aba33,PDO::PARAM_STR);
$query->bindParam(':aba41',$aba41,PDO::PARAM_STR);
$query->bindParam(':aba42',$aba42,PDO::PARAM_STR);
$query->bindParam(':aba43',$aba43,PDO::PARAM_STR);
$query->execute();
{
$_SESSION['msg']="Sample information updated successfully";
self.close();

}

?>

Hy

我可以想象这个问题有两种解决办法。 1:更简单的方法:在数据库操作后重定向到正确的页面

header("location: ".{landing_page}."); die;
2:创建web服务api,在按钮单击事件上使用javascript,并调用创建的web服务api。如果返回成功,只需关闭弹出窗口,如果有任何错误,您可以向用户显示

我希望这对你有帮助


Chris

点击URL打开新标签,实际上它不是一个弹出窗口

要在您想要的操作之后关闭选项卡,您应该这样做

替换

self.close();

echo“window.close();”;

echo“close();”;

您不能以这种方式将Javascript与php混合使用。您可以添加用于打开带有标记的弹出窗口的代码吗?欢迎使用stack overflow,这对您将来的@Vantiya有帮助吗
echo "<script>window.close();</script>";
echo "<script>close();</script>";