js 调用php方法
    介绍
    本文讲述了如何在javaScript和PHP之间调用一些方法。 JavaScripters可以采用简单的Ajax技术来调用PHP脚本,从而实现一些简单的功能。
    一、Ajax调用
    使用Ajax可以调用php文件中定义的方法,比如xmlhttprequest对象。 Ajax是一种通过比较快速的方式从客户端到服务器端传递数据的技术,这种方式不会中断用户体验,当不同的请求被发送,它可以处理多个请求。
    1. 客户端:
    首先,需要在客户端定义xmlhttprequest对象,然后调用open()方法,参数包括请求的类型(get,post等),请求的地址(服务器端处理的php文件),以及是否使用异步(true或false)。
    //声明xmlhttprequest对象
    var xmlhttp;
    if (window.XMLHttpRequest){
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
    }else{
    // code for IE6, IE5
    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }
    //设置请求参数
    xmlHttp.open('POST','URL of the php file',true);
    xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    2. 服务器端
    服务器端需要处理客户端发来的请求,主要代码如下:
    //处理Ajax请求
    $method = $_POST['method'];
    if (strcmp($method,'function1') == 0) {
    $retval = doFunction1();
    } else if (strcmp($method,'function2') == 0) {
    $retval = doFunction2();
    } else {
    $retval = 'Function not found';
    }
    echo $retval;
    二、 PHP的cURL技术
    cURL是一种用于从远程服务器传输数据的协议,可以用来处理http,https,ftp等传输协议。 使用cURL,客户端可以发送模拟http请求,从而调用php文件中的方法。
    1. 客户端:
    首先,需要声明curl变量,然后设置curl参数,并执行curl请求,主要代码如下:
    //声明curl变量
    $ch = curl_init();
    //设置curl参数
    curl_setopt($ch, CURLOPT_URL, 'URL of php file');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'method=function1');
    //执行curl请求
    $retval = curl_exec($ch);
js调用方法的三种写法
    2. 服务器端
    服务器端需要处理客户端发来的请求,可以使用上面ajax调用的方法,主要代码如下:
    //处理curl请求
    $method = $_POST['method'];
    if (strcmp($method,'function1') == 0) {
    $retval = doFunction1();
    } else if (strcmp($method,'function2') == 0) {
    $retval = doFunction2();
    } else {
    $retval = 'Function not found';
    }
    echo $retval;
    总结
    本文介绍了如何在javaScript和PHP之间调用一些方法。 使用AJAX可以实现客户端的请求,并在服务器端进行处理;而使用cURL可以模拟http请求,也是一种有效的方式。 只要能够搞清楚客户端和服务器端之间的请求及响应,就可以轻松实现javascript和php之间的调用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。