我有一个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
的类方法,而不是发布参数来访问它。
答案 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()
或类似的东西。