我的问题可能听起来很旧,已经回答了你,但我没有找到令人满意的答案。让我清楚地解释一下我的情景,
我得到像这样的index.php
的index.php
<?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>
我没有在ajax调用中传递URL,但我成功获得了数据警报,但整个页面从<html>
到</html>
。当我向functions.php提供url时,我在警告框中获得了预期的输出。
我希望你的家伙对我的问题有一个很好的猜测。我的问题是我需要调用functions.php
中已包含在index.php
页面中的函数。我不想在ajax'URL中再次使用functions.php
:'因为functions.php
将被调用两次。这是为了避免服务器负载。
让我,你伙伴提出有趣的想法。
谢谢。
答案 0 :(得分:5)
扩展Quentin的说法,你不能直接从Ajax请求中调用php函数,但你可以通过GET&amp; 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";
}
答案 1 :(得分:2)
Ajax允许您发出HTTP请求。 HTTP请求转到URL,而不是函数。
您可以编写一个PHP脚本来调用特定的函数(没有别的),将它放在给定的URL上,然后使用Ajax来请求该URL。
您可以使该PHP脚本包含if
语句,该语句检查GET或POST数据,然后根据值调用不同的函数。
您无法从客户端指定任意函数。
答案 2 :(得分:0)
如果您这样做,您可以在同一页面上调用“功能”。 你所做的事实上是在同一页面上发帖子。有点黑客,但它确实有效。
$("#id").event(function(){
$.post(
"",
{postterm: postvalue, another:parameter},
);
});
然后用帖子打电话:
if(isset($_POST['postterm'])){
$othervalue = $_POST['another'];
//Do your function
}