2

当用户单击按钮时,运行 PHP 脚本的最佳方式是什么?它不会向用户发送任何内容!(PHP 脚本只发送一个 PostgreSQL 查询。)

我只找到了返回数据的方法。我只想运行它。

4

4 回答 4

6

您正在寻找AJAX(异步 javascript)。只需让一个javascript函数调用目标脚本,要么不返回任何内容,要么不对返回值做任何事情。或者,您可以简单地将表单提交到页面上的隐藏 iframe。

于 2012-08-21T13:39:07.980 回答
4

这是我能想到的最好的。希望这是你要找的。

        /* Function that we create to handle backwards compatiblity to browsers.
    What it does is to try diffrent types of XMLHttpRequests. */
            function getXMLHttp() {
                var xmlHttp;
                try {
                    //Firefox, Opera, Safari, Chrome, IE7+
                    xmlHttp = new XMLHttpRequest();
                } catch (e) {
                    try {
                        //Internet Explorer 6
                        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e) {
                        try {
                            //Internet Explorer 5
                            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {
                            return false;
                        }
                    }
                }
                return xmlHttp;
            }
            // Here, we send the request
            function send() {
                /* We say the variable xmlHttp is the function 
                where we try the diffrent XMLHttpRequests*/
                var xmlHttp = getXMLHttp();
                    // We open your PHP file...
                xmlHttp.open("POST", "yourphpfile.php", true);
                    // ...and send it to the server
                xmlHttp.send();
            }

简短 说明 由于您没有向用户返回任何内容,因此您使用 POST 而不是 GET。它向服务器发送对文件的请求。正如您在问题中所说,某些内容已发送到 PostgreSQL 服务器。但是,该 PHP 脚本在支持 PHP 的托管服务器上运行。

于 2012-08-21T14:05:28.960 回答
2

最基本的方法是使用 html 表单。

<form action="somePHPfile.php" method="post">
  <input type="button" value="Run somePHPfile.php" />
</form>

您也可以按照 Ben D 的建议进行操作,但这不是最基本的方法。使用 jquery:

$("#YOURbuttonID").click(function(){
  $.post("yourPHPfile.php", function(){
    alert("Success!");
  });
});
于 2012-08-21T13:42:53.203 回答
0

您将需要使用 Ajax,然后您可以更新 div 等,以便用户知道查询是否正确执行。

于 2012-08-21T13:41:59.840 回答