![](/img/trans.png)
[英]How to perform ajax (jquery) functionality without using an external php file
[英]How do I run PHP through jQuery without using an external file?
我有一个网页,当用户单击按钮时,我需要执行某些PHP函数。 我打算为此使用jQuery。 问题是,由于我不愿讨论的原因,我不能使用外部PHP文件。 我可以使用的所有PHP必须在此文件中的某个位置。 我发现通过jQuery执行任何类型的PHP代码的每种解决方案都需要一个外部文件。 但是必须有一种方法可以让它读取我在此文件中提供的文本,对吗? 有任何想法吗?
您可以使用JQuery的ajax函数(例如$ .post)将GET或POST参数发送到页面,以指定请求来自代码。 然后,只需检查该参数,如果存在,则执行您想要的任何操作,然后输出其他值,而不是正常值。
您只需要向同一页面发出一个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();
}
?>
您无法以您似乎想的方式使用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的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.