我想在javascript函数中执行php文件。代码如下所示:
<a id="cancel" href="./?&_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没有被执行。我应该如何从这个出来?
答案 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 ...
......可能还有很多其他方式:)