对同一页面上包含的php函数进行ajax调用
我的问题可能听起来很老,已经回答了你,但我没有找到一个令人满意的答案。让我解释清楚我的情况 我得到了index.php,如下所示 index.php对同一页面上包含的php函数进行ajax调用,php,ajax,Php,Ajax,我的问题可能听起来很老,已经回答了你,但我没有找到一个令人满意的答案。让我解释清楚我的情况 我得到了index.php,如下所示 index.php <?php inlcude("connect.php"); include("functions.php"); ?> <html> $(document).ready(function() { $('#button').click(function()
<?php
inlcude("connect.php");
include("functions.php");
?>
<html>
$(document).ready(function() {
$('#button').click(function() {
$.ajax({
type: 'GET',
data: 'method=test',
success: function(data) {
alert(data);
}
});
});
});
</html>
$(文档).ready(函数(){
$(“#按钮”)。单击(函数(){
$.ajax({
键入:“GET”,
数据:“方法=测试”,
成功:函数(数据){
警报(数据);
}
});
});
});
我没有在ajax调用中传递URL,我成功地获得了数据警报,但是整个页面从
到
。当我提供functions.php的url时,我会在警报框中获得预期的输出
我希望你们对我的问题有一个准确的猜测。我的问题是我需要从functions.php
调用一个函数,它已经包含在我的index.php
页面中。我不想在ajax的URL中再次使用functions.php
,因为functions.php
会被调用两次。这是为了避免服务器负载
让我这个家伙想出一些有趣的主意
谢谢。Ajax允许您发出HTTP请求。HTTP请求转到URL,而不是函数 您可以编写一个PHP脚本,该脚本将调用特定函数(而不是其他函数),将其放置在给定的URL上,然后使用Ajax请求该URL 您可以让PHP脚本由一个
if
语句组成,该语句检查GET或POST数据,然后根据值调用不同的函数
不能从客户端指定任意函数 扩展昆汀所说的内容,您不能直接从Ajax请求调用php函数,但可以将GET&POST数据传递到php脚本,并执行if或switch语句来调用您的函数,所以您可以这样做 //您的Ajax调用
$.ajax(
{
type:'GET',
url:'functions.php',
data:"function_to_call=0",
success: function(data){
alert('successful');
}
});
您的PHP函数脚本将如下所示
switch ($_GET['function_to_call'])
{
case 0:
{
function1();
break;
}
case 1:
{
function2();
break;
}
default: break;
}
//And your functions.
function function1() {
echo "This is function 1";
}
function function2() {
echo "This is function 2";
}
如果你这样做,你可以在同一页上调用“函数”。 实际上,你所做的是在同一页上调用一个帖子。有点像黑客,但它是有效的
$("#id").event(function(){
$.post(
"",
{postterm: postvalue, another:parameter},
);
});
然后用帖子来称呼它:
if(isset($_POST['postterm'])){
$othervalue = $_POST['another'];
//Do your function
}
假设functions.php已经加载到index.php中,是否有可能我不使用URL而是使用index.php中预加载的函数?如果我不理解您的问题,请道歉,但Ajax调用的目的是从服务器加载动态数据。。。如果已经加载了数据,那么为什么要对该数据进行Ajax调用?您可以从index.php调用“functions.php”中的任何函数,而无需Ajax调用……但是,是否可以在不重新加载页面的情况下从预加载的functions.php中获取数据并动态显示?我怀疑服务器负载问题会是个问题,除非functions.php非常大。在任何情况下,您仍然需要发出HTTP请求来处理ajax,nyet?如果您真的希望保持服务器负载较低,您可能希望在JS中实现您的功能,除非它需要DB访问。