2016-11-17 61 views
0

我有一個file.php並在函數中。 Javascript端,我使用Ajax。在PHP文件中調用函數並傳遞JavaScript變量

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

現在在文件file.php中存在函數login。我的問題我怎樣才能調用函數登錄?謝謝。

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]; 
} 

回答

0

整個php文件被執行。所以如果你在file.php中調用ft_login,它會被執行。您可以將您的參數傳遞給該功能。

不要忘記json_decode你的參數。

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 
    } 
}