簡體   English   中英

如何通過ajax在類內調用特定的php函數?

[英]How to call a specific php function inside a class through ajax?

我想知道如何調用User類中可用的函數ajax_check_login ,該類存在於user.php 這是基本內容:

class User extends {
/**
 * Class Constructor
 */
public function __construct() {
}

public function ajax_check_login() {
    try {
        if (!isset($_POST['username']) || !isset($_POST['password'])) {
            throw new Exception('Invalid credentials given!');
        }
        $this->load->model('user_model');
        $user_data = $this->user_model->check_login($_POST['username'], $_POST['password']);
        if ($user_data) {
            $this->session->set_userdata($user_data); // Save data on user's session.
            echo json_encode(AJAX_SUCCESS);
        } else {
            echo json_encode(AJAX_FAILURE);
        }
    } catch(Exception $exc) {
        echo json_encode(array(
            'exceptions' => array(exceptionToJavaScript($exc))
        ));
    }
  }
}

這是我的ajax請求:

 var postUrl = GlobalVariables.baseUrl + 'application/controllers/user.php/ajax_check_login';
 var postData =
 {
     'username': $('#username').val(),
     'password': $('#password').val()
 };

 $.post(postUrl, postData, function(response)
 {
     // Some stuff..
 });

您如何看到我想調用user.php文件中可用的ajax_check_login函數。 但是我無法直接訪問此函數,因為它位於User類內,所以我應該創建另一個文件來退回請求,或者可以在同一文件中的user.php文件中進行操作?

您有錯字:

class User extends {

擴展什么?

將此添加到user.php(在類外部):

$allowed_functions = array('ajax_check_login');
$ru = $_SERVER['REQUEST_URI']
$func = preg_replace('/.*\//', '', $ru);
if (isset($func) && in_array($func, $allowed_functions)) {
  $user = new User();
  $user->$func();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM