IF语句后的查询始终在PHP和JavaScript中运行

时间:2014-02-16 21:04:02

标签: javascript php

我尝试进行验证,确认用户是否接受了请求。

请求有两种状态,成功或失败。 但他们总是在确认声明中返回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');
}

1 个答案:

答案 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查询的代码。

快乐的编码!