用javascript函数执行php文件

时间:2013-12-01 17:23:34

标签: javascript php

我想在javascript函数中执行php文件。代码如下所示:

<a id="cancel" href="./?&amp;_action=list" onclick="javascript:clearRecord();return rcm.command('list','',this,event)">Cancel</a>


<script language="javascript" type="text/javascript">
var u1='michael';
function clearRecord() {
        $(function() {
            location.href = 'clear.php?h='+u1;
        });
    }
</script>

但是当我点击取消按钮时,clear.php没有被执行。我应该如何从这个出来?

2 个答案:

答案 0 :(得分:8)

完整&amp;回答你的问题:

<html>
<head>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script language="javascript">
        function cancelClicked() {
            // function below will run clear.php?h=michael
            $.ajax({
                type: "GET",
                url: "clear.php" ,
                data: { h: "michael" },
                success : function() { 

                    // here is the code that will run on client side after running clear.php on server

                    // function below reloads current page
                    location.reload();

                }
            });
        }
    </script>
</head>
<body>
    <a id="cancel" href="#" onclick="cancelClicked()">Cancel</a>
</body>
</html>

答案 1 :(得分:3)

如果你想只执行一些php并将当前页面留给这个php脚本生成的页面。然后你几乎是对的。 我没有看到你正在使用jquery - 所以跳过这个“$(function(){})”部分,我没有看到添加了什么u1但是这将起作用:

function clearRecord() { location.href = 'clear.php'; }

这将做同样的事情:

<a href="clear.php">Cancel</a>

但是如果你只想运行“clear.php”然后重新加载当前页面。 一种方法是将“clear.php”文件放在最后:

header("Location:/");

(仅当clear.php没有写任何内容作为回应时才会起作用。)

但你可以用其他方式做到:
- 使用AJAX - 使用jQuery.get()调用clear.php并在成功时调用location.reload();
- 使用IFRAME - 将iframe的位置设置为clear.php,然后调用window.location.reload();
- 使用IMG - 将img.src设置为clear.php ...
......可能还有很多其他方式:)