有没有办法通过jQuery使用JavaScript访问PHP类方法?

时间:2010-05-17 12:30:26

标签: php jquery

我有一个JavaScript脚本:

    $("#feedbacksubmit").click(function() {
    if($("#frmfeedback").valid()) {
        var tname = $("#name").val();
        var temail = $("#email").val();
        var tphone = $("#phone").val();
        var tcontent = $("#content").val();
        var tsend = $(this).attr('ts');
        $.post ( "bll/index.php",
                {  action: 'mailfeedback', name: tname, email: temail, phone: tphone, content: tcontent, send: tsend },
                function(data) {                    
                    $('.msgbox').html(data);
                    $("#frmfeedback")[0].reset();
            });         
        return false;       
    }
});

但是,我试图看看是否有办法直接从脚本访问bll/index.php的类方法,而不是发布参数来访问它。

3 个答案:

答案 0 :(得分:2)

听起来你对在网络上发展感到困惑。

JavaScript(除非另有说明)是一种“客户端”语言,这意味着它在客户端浏览器上运行后,页面已经编译并从服务器发送。这意味着代码中没有PHP / ASP,只有HTML和JavaScript。

PHP,ASP,JSP是服务器端语言,只能在服务器端运行。 所以回答你的问题,不,你不能直接让JavaScript调用PHP(服务器端)函数,但是你可以发布到PHP页面,然后它将执行你喜欢的任何函数。

现在,如果你说的是可能的(尽管不推荐),那么我的回答是: -

<强> YES

使用XML-RPC可以从JavaScript调用PHP方法。您可以通过设置XML-RPC服务器(PHP页面)远程调用PHP方法,然后在JavaScript中访问该服务器。有PHP XML-RPC库和JavaScript XML-RPC .js文件。

在计算机科学中,一切皆有可能。

谷歌了解更多细节。

答案 1 :(得分:1)

您可以使用JSON-RPC以更有条理的方式向您的服务器发送呼叫。但这也意味着你必须在服务器端使用RPC服务器(或者至少有一些解析RPC的功能,应该有一些可用于PHP)。

根据你使用了多少,这可能有点过度杀戮,你仍然需要使用.post().get().ajax()

来自维基百科:

  

JSON-RPC是一种用JSON编码的远程过程调用协议。它是一个非常简单的协议(与XML-RPC非常相似),只定义了少数几种数据类型和命令。与XML-RPC或SOAP相比,它允许服务和客户端之间的双向通信,将每个更像对等体,并允许对等体相互呼叫或相互发送通知。它还允许将多个呼叫发送给可能无序应答的对等体。

消息结构示例(也来自维基百科):

--> { "method": "echo", "params": ["Hello JSON-RPC"], "id": 1}
<-- { "result": "Hello JSON-RPC", "error": null, "id": 1}

答案 2 :(得分:0)

PHP作为HTTP请求的一部分在服务器上运行。页面加载后,JavaScript(和您的ajax)在客户端上运行。如果你想在页面加载后根据页面上表单的内容在PHP中生成新数据,你必须像通过ajax一样与PHP进行交互。

你可以抽象出来,但最后你仍然会使用$.post()或类似的东西。