Javascript mssql中数据删除成功与否后如何显示报警框

Javascript mssql中数据删除成功与否后如何显示报警框,javascript,php,sql,sql-server,Javascript,Php,Sql,Sql Server,我想在MSSQL中成功或未成功删除数据后显示JavaScript警报。如何做到这一点?我已经编写了这段代码,但每次它都只显示message=success部分警报,即使删除操作因“与引用冲突(外键)”等错误而无效,因此当我单击此链接时 echo "<a class='activater' href='ma_QualiOverviewloeschen.php?TestaufstellungID=".$row['TestaufstellungID'] ."&QualiID=".$r

我想在MSSQL中成功或未成功删除数据后显示JavaScript警报。如何做到这一点?我已经编写了这段代码,但每次它都只显示
message=success
部分警报,即使删除操作因“与引用冲突(外键)”等错误而无效,因此当我单击此链接时

 echo "<a class='activater'  href='ma_QualiOverviewloeschen.php?TestaufstellungID=".$row['TestaufstellungID'] ."&QualiID=".$row['QualiID'] ."' title='Qualitest l&ouml;schen' data-toggle='tooltip' onclick='confirm_delete()'>   <span class='glyphicon glyphicon-trash'></span></a>"; 
返回单击链接的主页,下面的
ifelse
考虑
消息应向我显示正确的警报

<?php
if($_GET['message']=='success'){
    echo '<script language="javascript">';
    echo 'alert("Erfolgreich gelöscht.");';
    echo '</script>';
} elseif($_GET['message']=='failed'){
    echo '<script language="javascript">';
    echo 'alert("Nicht gelöscht, da Quali "ongoing" ist.");';
    echo '</script>';
}
?>


我错过了什么?

$sth
将永远不会被
falsy
,您必须检查
$sth->execute的返回值
此外,您应该在发送标头后回显错误

由于总是定义
$sth
,因此您总是会得到成功的结果 请参见此处修改的代码

$QualiDelete =("DELETE FROM MyDB.dbo.Testaufstellung WHERE MyDB.dbo.Testaufstellung.TestaufstellungID = :TestaufstellungID");
$QualiDelete .=("DELETE FROM MyDB.dbo.AllgemeineAngaben WHERE MyDB.dbo.AllgemeineAngaben.QualiID = :QualiID");

$sth = $connection->prepare($QualiDelete);//Check the value returned instead of $sth
$result = $sth->execute(array(':TestaufstellungID' => $TestaufstellungID, ':QualiID:' => $QualiID));

                if($result )
                {
                    header("location: ma_QualiOverview.php?message=success");   
                }
                else
                {
                    header("location: ma_QualiOverview.php?message=failed");  
                    echo sqlsrv_errors();//Echo must be after header

                }
                $connection = null;

我怀疑你的质疑是否有效。一旦concat,give字符串将提供语法错误。
$QualiDelete =("DELETE FROM MyDB.dbo.Testaufstellung WHERE MyDB.dbo.Testaufstellung.TestaufstellungID = :TestaufstellungID");
$QualiDelete .=("DELETE FROM MyDB.dbo.AllgemeineAngaben WHERE MyDB.dbo.AllgemeineAngaben.QualiID = :QualiID");

$sth = $connection->prepare($QualiDelete);//Check the value returned instead of $sth
$result = $sth->execute(array(':TestaufstellungID' => $TestaufstellungID, ':QualiID:' => $QualiID));

                if($result )
                {
                    header("location: ma_QualiOverview.php?message=success");   
                }
                else
                {
                    header("location: ma_QualiOverview.php?message=failed");  
                    echo sqlsrv_errors();//Echo must be after header

                }
                $connection = null;