1

;-) 我撞到了一堵砖墙。今天,我有生以来第一次见到了阿贾克斯。我明白,我的问题看起来很愚蠢。但我需要你的帮助。

我有一个 php 文件(例如 index.php),它有一个包含(function.php)。在文件function.php我有一个函数(例如function Jokes(){....})。

我想使用 AJAX 在我的页面中加载此功能。但我不知道该怎么做...... :-(

我找到了一些简单的解决方案(我使用 Jquery 加载功能),但这不是我想要的,因为我必须使用单独的文件。

$('#jokes').load('jokes.php');

但我需要类似的东西:

$('#jokes').load('function.php','jokes()');

有什么帮助或想法吗?将不胜感激。

PS:对不起我的英语不好......))

4

6 回答 6

2

您可以做的是制作一个 AJAX 文件,例如 ajaxfunctions.php,您可以在其中划分功能。

$('#jokes').load("ajax.php", { 'function': 'jokes' } );

在您的 PHP 文件 ajax.php 中,您可以这样做:

<?php
include 'function.php';
if (isset ($_POST['function']) && $_POST['function'] == 'jokes')
{
    echo jokes ();
}
?>

这对你有帮助吗?

于 2013-02-28T14:04:26.453 回答
0

浏览器(以及 Ajax)只能向服务器发出 HTTP 请求。

它不能执行特定的功能。

您必须编写能够识别特定 URL 的服务器端代码(例如,写入仅调用该函数的脚本,或根据查询字符串决定运行哪个函数的脚本)并执行特定函数以响应请求给它。

于 2013-02-28T14:02:04.593 回答
0

不,这是不可能的。您必须向 url 发出请求。您不能只从 php 文件中调用特定函数。

为您需要的功能构建一个 url 包装器。

于 2013-02-28T14:02:23.323 回答
0

不要那样做。Ajax 用于发送或检索数据,但您要做的是加载 PHP 文件中定义的 Javascript 函数(不是吗?)。相反,只需在 JS 文件中定义您的 Javascript 函数并通过脚本加载它(或者,如果应该动态加载,您可以使用 AMD 加载器,如 require.js)

如果你想在 JS 中加载一个 PHP 函数,那是不可能的。不过,您可以调用该函数并获取其结果。

于 2013-02-28T14:02:54.533 回答
0

它不像这样工作。

$('#jokes').load('jokes.php');

向jokes.php 发出http 请求。如果要执行特定功能,可以使用参数,如下所示:

$('#jokes').load('jokes.php?func=jokes');

从您的 php 脚本中,获取 'func' 并执行正确的功能。

...
function jokes() {
   return 'some output';
}

...
$func='';
if (!empty($_REQUEST['func'])) {
  $func=$_REQUEST['func'];
}

if ($func=='jokes') {
  echo jokes();  
}
于 2013-02-28T14:03:50.217 回答
0

为此,您不需要 AJAX。您想将 Jokes() 函数放在一个 JavaScript 文件中,可能称为 Jokes.js,将其包含在 index.php 中,然后在 index.php 中的 JavaScript 块中正常调用它。

于 2013-02-28T14:05:53.657 回答