在php文件中调用函数并传递JavaScript变量

时间:2016-11-17 23:57:01

标签: javascript php jquery ajax

我有一个file.php和一个函数。 Javascript Side,我使用Ajax。

$.ajax({
  type: "POST",
  url: "file.php",
  data: {param1: params1, param2: params2...},
  complete: function(data){
   /* code */
  }
});

现在在文件file.php中,存在一个函数登录。我的问题如何调用函数登录?感谢。

function ft_login($login, $password) {
    $u = new KVObject();
    $u->collection = "users";
    $u->loadFormArray(["login" => $login, "password" => $password]);
    if ($u->obj_id == null)
        return ["ERROR" => "Bad creditial"];
    if ($u->status == "blocked")
        return ["ERROR" => "Account need to be activated"];

    $token = md5(time());
    $_SESSION[$token] = $u->dataObject;
    return ["token" => $token, "user" => $u->dataObject];
}

2 个答案:

答案 0 :(得分:0)

执行整个php文件。因此,如果你在file.php中调用ft_login,它就会被执行。您可以将参数传递给该函数。

别忘了json_decode您的参数。

答案 1 :(得分:0)

您可以传递指示PHP代码的另一个参数

$.ajax({
    type: "POST",
    url: "file.php",
    data: {request: 'login', password:userid, password:password},
    complete: function(data){
    }
});

然后在file.php PHP代码

<?php
function ft_login($login, $password) {

    . . .

}

if ( isset($_POST['request'] && $_POST['request'] == 'login' ) {
    if ( isset($_POST['login'], $_POST['password']) ) {
        $result = ft_login($_POST['login'], $_POST['password']);

        // do whatever with $result
    }
}