用Ajax调用PHP函数

时间:2012-08-21 09:41:31

标签: php ajax

我有一个PHP页面,其中包含以下内容:

<?php

class CallsClass {

    var $conn1;
    var $dataTable = "";

    function calls() {    
        $this->conn1 = new Datasource("taylor", "dbproj", "root", "elves") or die("Could not connect");

        $s1 = "SELECT id, UPPER(SUBSTRING_INDEX(fullname,' ',1)) as fullname, oldcode FROM `researcher` WHERE `display` = '1' AND fullname <> 'Jenny Porteous' AND fullname <> 'Carey-Lee Lendrum' AND fullname <> 'Carys Gibson'";
        $result = $this->conn1->_execute($s1);

        while ($row = $this->conn1->_nextAssocRow($result)) {
            $fullName = $row['fullname'];
            $dataTable .= $fullName;
        }
        echo json_encode($dataTable);
    }

}

?>

I know want to call this with my Ajax function:

$(document).ready(function() {
                    $(function () 
                    {
                        $.ajax({                                      
                            url: 'Queries/CallsQuery.php/calls',            
                            dataType: 'json',              
                            success: function(result)         
                            {
                                //console.log(result);
                            } 
                        });

                    });

我在Google Chrome开发者工具中收到“选项文件:/// C:/Users/wesley/Desktop/Highcharts%20example/Queries/CallsQuery.php/calls()资源无法加载”错误为什么?

谢谢, 韦斯利

2 个答案:

答案 0 :(得分:2)

简短版本:因为您没有使用网络服务器。


浏览器不支持PHP。在WWW的上下文中,它是服务器端编程语言。

您需要一个Web服务器:

  • Interpet一个URI,它传递超出文件名末尾的数据
  • 执行PHP

此外,我不知道PHP有能力在URI的末尾处理/function_name作为“在文件中唯一的类中运行此函数”。

可能具有该功能,我不是PHP专家,但它似乎有点“做我可能意味着什么”,即使对于PHP。

通常的方法是让控制器处理程序检查URI然后执行适当的函数。

答案 1 :(得分:2)

编辑:甚至没有看到错误,但Quentin是对的:看起来像 php 没有做任何事情:获取xampp,阅读文档并设置本地机器上的快速服务器,我推荐使用xampp,因为设置起来很简单,但是从头开始这样做会提供更多信息,并且一如既往

您希望如何运作?除非已经实例化,否则类是惰性代码。您正在调用成员功能,该功能位于您发送请求的脚本中。这个脚本定义了一个类,并且就其所涉及的工作而言,并且回家可以获得清爽的啤酒。

您需要一个ajax脚本,它处理您的请求,创建一个实例,然后调用相应的成员函数


关闭主题,但仍然:关于你的jQuery代码:你为什么要嵌套ready回调?

$(function ()

的缩写
$(document).ready(function ()

所以这对我没有意义:

$(document).ready(function ()
{
    $(function ()
    {});
});