我有一个网页,我需要在用户点击按钮时执行某些PHP功能。我打算为此使用jQuery。问题是,由于我不会进入的原因,我不能使用外部PHP文件。我可以使用的所有PHP都必须在这个文件中。我发现通过jQuery执行任何类型的PHP代码的每个解决方案都需要一个外部文件。但是必须有一种方法可以让它读出我在这个文件中给出的文本,对吗?有什么想法吗?
答案 0 :(得分:1)
您可以使用JQuery的jjax函数(例如$ .post)向页面发送GET或POST参数,以指定请求来自代码。然后只需检查该参数,如果存在,执行您想要的操作并输出其他内容而不是正常的。
答案 1 :(得分:0)
您只需要向同一页面发出ajax请求
<script>
$.ajax({
type: "POST",
url: "foobar.php",
data: {foo:'bar'},
dataType: 'text',
success:function(data){
alert(data);
}
});
</script>
<?php
if($_REQUEST["foo"] == "bar") {
echo "i've been ajaxed";
call_my_func();
}
?>
答案 2 :(得分:0)
您无法以您想象的方式使用JavaScript调用PHP函数。
当您加载PHP页面时,服务器处理PHP文件中的代码并仅将该代码的结果返回给浏览器。浏览器完全不知道PHP文件中的实际代码。
另一方面,JavaScript完全在客户端运行,即在浏览器中运行。因此,在浏览器专门向服务器发送请求之前,服务器不会意识到浏览器中发生的任何事情。
如果您想要一个按钮点击来触发PHP功能,您将不得不向目标PHP文件(无论是另一个文件,还是同一个文件)发出请求。
一种方法是将表单中的按钮提交到同一页面,页面在生成内容时查找表单数据:
<form method="post">
<input type="submit" name="myButton" value="Click me" />
</form>
通过省略action
属性,表单将提交到同一页面。
在页面顶部的PHP部分中,您将有类似的内容来检查按钮是否已被点击:
<?php
if (isset($_POST["myButton"])) {
myFunction();
}
?>
这当然会导致页面重新加载。如果你想避免这种情况,请查看涵盖AJAX的答案。