我尝试进行验证,确认用户是否接受了请求。
请求有两种状态,成功或失败。 但他们总是在确认声明中返回True。
为什么会这样,我该如何解决?
代码的一个例子就像我说的那样:
<script>
if (confirm('Some Question')) {
<?php
if (mssql_query ("some query...")) {
mssql_query ("some query 2...")
?> alert('Succes!'); <?php
}
else { ?> alert('Query Fail'); <?php }
?>
}
else {
alert('Fail');
}
答案 0 :(得分:1)
我可能会得出结论,但我不认为您理解在服务器上执行的PHP代码与在客户端上执行的javascript之间的区别。您编写的代码中的javascript和PHP不会按照您预期的顺序执行。
首次加载.php文件时,服务器将首先执行此PHP:
if (mssql_query ("some query...")) {
mssql_query ("some query 2...")
?> alert('Succes!'); <?php
}
else { ?> alert('Query Fail'); <?php }
请注意,无论用户在前端的操作如何,都会运行mssql_query()函数。
一旦你的PHP完成执行并且如果上面的if语句为真,则以下javascript代码将被提供给浏览器
if (confirm('Some Question')) {
alert(''Success!);
}
else {
alert('Fail');
}
请注意,您的页面已在浏览器中加载,您的PHP都无法运行。
你必须重构你的逻辑才能达到你想要的效果。您的案例的快速解决方案是只有2个文件。 1个文件用javascript询问用户的确认,如果确认()然后使用AJAX或用户直接重定向到yourscript.php,其中包含执行mssql查询的代码。
快乐的编码!